Merge:
1、Fast-forward(快进式)
2、recursice strategy (策略合并,三方合并)
-
Fast-forward
-
策略合并
//创建一个文件夹,并初始化 Gitmkdir GitDemocd GitDemogit init//初次提交,创建 master 分支touch master.txtgit add.git commit -m '添加master文件'//从master分支末尾,创建并切换 featureA 分支,并创建一个提交git checkout -b featureAtouch A.txtgit add.git commit -m '添加A文件'//从master分支末尾,创建并切换 featureB 分支,并创建一个提交git checkout mastergit checkout -b featureBtouch B.txtgit add.git commit -m '添加B文件'//切换 master 分支git checkout master//master 合并 featureA 分支git merge featureA//master 合并featureA 后再合并 featureB 分支git merge featureB复制代码
执行结果如图:
合并过程如图:
这是没有冲突的时候,但是日常肯定会有冲突的,那么我们就创建一个冲突。 我们在三个分支的 master 文件都进行修改。每一个分支都不同。
我们修改后 add commit 就好了。Git Flow 的作者 Vincent Driessen 非常建议,在 合并分支 merge 的时候加上 no-ff 参数。意思是不要选择 Fast-Forward 模式,而是采用 Recursice Strategy 策略模式。这样会让我们多一个合并提交,这样做的好处是有一个非常清晰的提交历史。可以看到合并分支的存在。
【完全copy文章】
[Git三大特色之Branch(分支)]