标签:
分支就好比一个人有分身术,一个在学习英语,一个在学习数学,当元神归一的时候,你就同时学会了两个东西。
分支在实际开发中有什么用呢?假设开发一个功能,你的代码需要两周写完,但是你在一个分支上每天提交部分代码会影响别人的不能干活。
但是等你写完,别人再开发,这样影响开发进度。现在有了分支就不怕了。你创建一个属于你自己的分支,别人看不到。当你开发完毕后,再
一次性合并到原来的分支上。这样既安全又不影响别人的工作。
其他的版本控制系统,如SVN等都有分支管理,但是用过之后你会发现,这些版本控制系统创建和切换分支比乌龟都慢,简直让人无法忍受,
结果导致分支功能成了摆设,大家都不去使用了。
但是Git的分支管理与众不同,不管是创建、切换、和删除分支,Git会快速的完成。
首先,我们创建dev分支,然后切换到dev分支:
$ git checkout -b dev
Switched to a new branch ‘dev‘
相当于以下两条命令:
$git branch dev
$git checkout dev
然后,用git branch命令查看当前分支:
$ git branch
* dev
master
git branch命令会列出所有分支,当前分支前面会标一个*号。
我们就可以在dev上正常提交了,比如在readme.txt做个修改,加上一句话:
添加dev分支内容
现在我们再切回master分支上:
$ git checkout master
Switched to branch ‘master‘
Your branch is ahead of ‘origin/master‘ by 1 commit.
(use "git push" to publish your local commits)
LV@LV-PC MINGW32 /c/gitskill (master)
$ ls
README.md readme.txt
LV@LV-PC MINGW32 /c/gitskill (master)
$ cat readme.txt
master分支内容
我们会发现,切换到master分支后,刚才添加的内容不见了,因为那个提交在dev分支上,而master分支此刻的提交点并没有变。
我们把dev分支上的工作内容合并到master分支上:
$ git merge dev
Updating d5aea29..0d0bbca
Fast-forward
readme.txt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
再看看master分支下的readme.txt文件:
LV@LV-PC MINGW32 /c/gitskill (master)
$ cat readme.txt
master分支内容
添加dev分支内容
合并成功后,就可以放心的删除dev分支了:
LV@LV-PC MINGW32 /c/gitskill (master)
$ git branch -d dev
Deleted branch dev (was 0d0bbca).
LV@LV-PC MINGW32 /c/gitskill (master)
$ git branch
* master
小结:因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务后,合并后再删除分支,这和直接在master分支上工作的
效果是一样的,但是过程更安全。
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b name
合并某某分支到当前分支:git merge name
删除分支:git branch -d name
标签:
原文地址:http://www.cnblogs.com/LvLoveYuForever/p/5522037.html