介绍了一些git最基本的命令,所做的操作都是在master分支上进行的。Git的分支与SVN分支概念是一致的,master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面直接修改。如果我们要修复一个紧急bug,或者是为临时增加一些新功能,一般都会新建一个dev分支,等开发完毕,验证没有问题之后,才会将dev分支上的修改并到主分支master上来。
$ git branch 命令可以显示所有本地分支
可以看到:first-repo这个仓库只有一个master分支。我们来创建dev分支,然后切换到dev分支上,如下操作:
git checkout 命令加上 –b参数表示创建并切换,相当于如下2条命令:
git branch dev
git checkout dev
git branch查看分支,会列出所有的分支,当前分支前面会添加一个星号。
然后我们在dev分支上继续做demo,比如我们现在在readme.txt再增加一行 7777777777777。首先我们先来查看下readme.txt内容,接着添加内容77777777,如下:
现在dev分支工作已完成,现在我们切换到主分支master上,继续查看readme.txt内容如下:
现在我们可以把dev分支上的内容合并到分支master上了,可以在master分支上,使用如下命令 git merge dev 如下所示:
git merge命令用于合并指定分支到当前分支上,合并后,再查看readme.txt内容,可以看到,和dev分支最新提交的是完全一样的。注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。合并完成后,我们可以接着删除dev分支了,操作如下:
上面由于dev分支和master分支内容不冲突,所以合并过程非常简单。但是实际上不同分支上文件冲突太常见了,下面我就来看下有冲突的时候如何合并。
首先建立一个demo分支,并修改readme.txt中内容然后提交:
现在我们切换到master分支上,修改readme.txt
下面我们将demo分支合入到master分支:
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,其中<<<HEAD是指主分支修改的内容,>>>>>demo 是指demo上修改的内容。
我们手动解决冲突后,可以完成合入了: