码迷,mamicode.com
首页 > 其他好文 > 详细

git开发使用和常用命令

时间:2017-06-12 15:31:41      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:reset   git add   git   email   保存   fas   pat   pop   默认   

git和svn区别

1.git是分布式版本管理,svn是集中式版本管理
2.集中式版本管理: 版本库放在中央仓库(中央服务器),首先你得从中央仓库中获取最新的版本,然后再对文件或者代码进行操作,最后再把你修改的结果推送到中央服务器中。集中式版本管理最大问题就是需要联网才能进行操作,所以提交文件的速度很大程度上取决于网速,而且在局域网和互联网速度影响也挺大的。
3.分布式版本管理: 分布式版本管理没有中央仓库,每个人的电脑都是完整的版本库,这样在你工作的时候就不需要联网,因为版本库就在你的电脑上,如果进行多人合作的话,只需要把你的修改直接推送给别人就好,这样就能直接看到别人的修改。但是在实际的开发中,很少有人会进行推送,因为你们很有可能不在一个局域网下,所以通常也会有一台机器充当中央服务器的机器,但是这个机器仅仅充当大家修改的交换,即使没有它,大家一样能够干活,只是交换和修改不方便。

创建版本库,并提交文件到本地仓库

1.配置git仓库的用户名和邮箱,相当于git用户身份

# git config --global user.name "administrator"
# git config --global user.email "administrator@qq.com"

2.创建版本库

# mkdir testGit : 新建文件夹
# cd testGit
# git init : 创建本地版本库

在windows系统中打开显示隐藏文件的选项,可以看到.git的目录,这个目录就是git用来管理版本库的,不要随意修改.git中内容,容易破坏版本库。

3.把文件加载到暂存区中

# git add xxx  (xxx代表文件名)

4.把暂存区中的文件保存到git版本库中

# git commit -m "infomation" (双引号中的信息是你想要提交的备注信息)

版本回退

1.查看版本提交日志记录

# git log

2.回退到上一个版本

# git reset --hard HEAD^

3.当然你也可以回退到任意的某个版本

# git reset --hard HEAD~X : X表示回退到第X个版本

4.同样你可以使用git log查看各个版本代码,然后回退到某个版本

# git reset --hard 321909 : 321909代指版本号

工作区和暂存区

版本库: 工作区中有一个隐藏文件.git,这就是版本库
工作区: 就是你文件真实的文件目录
暂存区: 在你git add的时候,文件先被保存到暂存区中,然后通过git commit保存到版本库中
我们可以通过查看 git status 查看git版本库状态

撤销修改

1.文件还没有提交到暂存区和版本库中,相当于撤销工作区的修改

# git checkout -- fileName

2.假如文件已经提交到暂存区中,步骤得分2步

# git reset HEAD XXX(XXX为文件名)
# git checkout -- XXX(XXX为文件名)

远程仓库

一.先有本地库,再有远程库
1.把本地代码上传到远程库

# git remote add origin git@server-name:path/repo-name.git

2.推送代码到远程库

# git push origin master

二.假如已经有了远程库

拉取代码到本地

# git clone URL (URL为远程地址)

git分支管理

原理: 分支指针指向每一次提交内容,mater指针指向最新的提交,HEAD指向当前分支,例如最开始指向master,当创建新的分支并切换新的分支时,Head指针会指向新的分支。
合并分支的原理:假如我们在DEV分支上开发了代码,然后想要合并到master分支,最简单最直接的方法就是直接把master指针指向DEV分支最新的提交就可以了,当然这是在没有冲突的前提下,有冲突的话还得先去解决冲突。
合并分支的过程有2种模式:
1.fast forward模式
2.no Fast forward模式
这两种模式的区别是:no Fast forward合并后可以看到在历史中分支的信息,知道曾经合并过分支,而fast forward模式并不记录改信息,git默认会使用fast forward模式。

Bug分支

当你新建分支,然后这个分支用来修改Bug,但是你突然有新的任务,需要新建分支继续干其它的活,你可以先把你的bug分支所做的事情先隐藏,然后等你完成其它的任务,再来bug分支进行工作。

1.把当前工作现场‘隐藏‘起来

# git stash

2.恢复工作现场有2种方法

# git stash apply : 恢复,但是恢复后,stash内容不删除,你需要用git stash drop来删除
# git stash pop : 恢复的同时把stash内容也删除

3.查看stash内容空间

# git stash list

4.恢复指定的stash空间

# git stash apply stash@{0}

git标签管理

1.打一个新的标签

# git tag name

2.查看所有的标签

# git tag

默认的标签是在最新的提交上commit的,如果有时候,忘了打标签,比如现在已经是周五了,但是应该是周一打的标签没有打这么办,方法是找到历史提交的commit id,然后打上就可以了,查看历史记录。

# git log --pretty=oneline --abbrev-commit

注意: 标签不是按照时间顺序列出的,而是按照字母排序的,可以用git show tagname 查看标签信息

3.查看标签信息

# git show tagName

4.创建带有说明的标签,用-a指定标签名,-m指定说明文字

# git tag -a v0.1 -m "version 0.1 released" 3628164

5.删除标签

# git tag -d v0.1

因为创建的标签都是储存在本地,不会自动推送到远程,所以打错标签可以在本地删除

6.推送标签到远程

# git push origin tagname

7.一次性推送所有标签到远程

# git push origin --tags

8.如果标签已经推送到远程,要删除远程的标签

# git tag -d tagName : 本地删除文件
# git push origin : refs/tags/tagName : 删除远程标签

git 切换远程分支

# git branch -a  查看分支全部关联列表
# git checkout -b develop origin/develop : 切换并关联远程分支
# git checkout develop
# git branch -vv : 查看本地分支与远程分支关联情况

常用命令整理

# git init : 把当前的目录变成可以管理的git仓库,生产隐藏.git文件
# git add xxx : 把xxx文件添加到暂存区去
# git commit -m "xxx" : 提交文件-m后面是注释
# git status : 查看仓库状态
# git diff xxx : 查看xxx文件修改哪些内容
# git log : 查看历史记录
# git reset --hard HEAD^或git reset --hard HEAD~X:回退到上x版本
# cat xxx : 查看xxx文件内容
# git checkout -- xxx : 把xxx文件在工作区的修改全部撤销
# git rm xxx : 删除xxx文件
# git remote add origin https://github.com/learn/testgit : 把本地代码上传到远程仓库
# git push –u(第一次要用-u 以后不需要) origin master : 把当前master分支推送到远程库
# git clone https://github.com/learn/testgit : 从远程库中克隆
# git checkout –b dev :创建dev分支 并切换到dev分支上
# git branch : 查看当前所有的分支
# git merge dev : 把dev分支合并到当前分支中
# git branch –d dev : 删除dev分支
# git branch xxx : 创建分支
# git stash : 把当前的工作隐藏起来 等以后恢复现场后继续工作
# git stash list : 查看所有被隐藏的文件列表
# git stash apply : 恢复被隐藏的文件,但是内容不删除
# git stash drop : 删除文件
# git stash pop : 恢复文件的同时,也删除文件
# git remote : 查看远程库的信息
# git remote –v : 查看远程库的详细信息
# git log --graph --pretty=oneline --abbrev-commit : 查看分支合并的详情
# git config --global alias.co checkout : 配置别名
# git push origin tagName : 可以推送一个本地标签
# git push origin --tags : 可以推送全部未推送过得本地标签
# git tag -d tagName : 删除一个本地标签
# git push origin :refs/tags/tagName : 删除一个远程标签
# git branch -D xxx : 强行删除某个分支

 

git开发使用和常用命令

标签:reset   git add   git   email   保存   fas   pat   pop   默认   

原文地址:http://www.cnblogs.com/persist-success/p/6993150.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!