学习GitHub(三): git分支的创建、合并和删除

强烈声明:本文参考涂根华的"Git使用教程"文章,这篇文章写的实在太好了,这里自己再亲自实践一遍,加深印象。


上一篇文章里介绍了一些git最基本的命令,所做的操作都是在master分支上进行的。Git的分支与SVN分支概念是一致的,master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面直接修改。如果我们要修复一个紧急bug,或者是为临时增加一些新功能,一般都会新建一个dev分支,等开发完毕,验证没有问题之后,才会将dev分支上的修改并到主分支master上来。


$ git branch  命令可以显示所有本地分支

学习GitHub(三): git分支的创建、合并和删除_第1张图片

可以看到:first-repo这个仓库只有一个master分支。我们来创建dev分支,然后切换到dev分支上,如下操作:

学习GitHub(三): git分支的创建、合并和删除_第2张图片

git checkout 命令加上 –b参数表示创建并切换,相当于如下2条命令:
git branch dev
git checkout dev

git branch查看分支,会列出所有的分支,当前分支前面会添加一个星号。


然后我们在dev分支上继续做demo,比如我们现在在readme.txt再增加一行 7777777777777。首先我们先来查看下readme.txt内容,接着添加内容77777777,如下:

学习GitHub(三): git分支的创建、合并和删除_第3张图片


现在dev分支工作已完成,现在我们切换到主分支master上,继续查看readme.txt内容如下:

学习GitHub(三): git分支的创建、合并和删除_第4张图片


现在我们可以把dev分支上的内容合并到分支master上了,可以在master分支上,使用如下命令 git merge dev 如下所示:

学习GitHub(三): git分支的创建、合并和删除_第5张图片

git merge命令用于合并指定分支到当前分支上,合并后,再查看readme.txt内容,可以看到,和dev分支最新提交的是完全一样的。注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。合并完成后,我们可以接着删除dev分支了,操作如下:

学习GitHub(三): git分支的创建、合并和删除_第6张图片


上面由于dev分支和master分支内容不冲突,所以合并过程非常简单。但是实际上不同分支上文件冲突太常见了,下面我就来看下有冲突的时候如何合并。

首先建立一个demo分支,并修改readme.txt中内容然后提交:

学习GitHub(三): git分支的创建、合并和删除_第7张图片


现在我们切换到master分支上,修改readme.txt

学习GitHub(三): git分支的创建、合并和删除_第8张图片


下面我们将demo分支合入到master分支:

学习GitHub(三): git分支的创建、合并和删除_第9张图片

Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,其中<<>>>>demo 是指demo上修改的内容。

我们手动解决冲突后,可以完成合入了:

学习GitHub(三): git分支的创建、合并和删除_第10张图片



你可能感兴趣的:(git)