概述
在Git的实际使用场景中,未必都是很规矩的拉一个分支,开发一个功能,等功能测试完成后,合并到主分支。有很多的场景都是很多人在同一个开发分支上开发,然后按照上线的实际需要,依次去上传自己的功能模块,这个功能模块的提交记录很可能是交叉提交的,那么这时候如何去只合并一个功能到主分支呢?或者是说怎么使用sourceTree去合并某次或某几次(不连续)提交到另一个分支?
方法步骤
1 打开sourceTree,切换到develop分支
2 打开本地工作副本,新增test2.txt文件,并编辑 add func1内容
3 提交并推送这次新增到远程仓库
4 打开本地工作副本,编辑test2.txt文件,新增 add func2
5 提交并推送这次修改内容,执行完成后,如下图所示
6 现在test2.txt文件 新增的 func1功能由于测试通过,需要先上线,合并到master分支。也就是要合并 新增test2.txt文件 add func1 的提交到master,而不动“新增func2”的提交。
切换到master分支,可以看到master分支落后 develop分支好多版本了,test2.txt文件对于master分支完全是新增文件,所以待会合并某次提交到master分支的时候,应该不会产生冲突的。下面关键的操作来了。
7 将当前分支切换到所有分支,如下图红框内
8 选择待合并的提交记录,右键 – 》遴选
9 在确认遴选的弹窗中点击是。
10 执行完后。切换到当前分支,可以看到master分支的本地仓库多了一个” 新增test2.txt文件 add func1” 的提交历史记录。执行的过程中果然是没有遇到冲突
11 推送该次合并到master分支的远程仓库。这样就完成了,合并某次提交到另一分支的操作。
sourceTree使用教程系列就到此结束了。总共七篇教程,基本涵盖了Git的所有使用场景,希望能帮助大家。有问题及时跟我沟通,谢谢!
注意事项
如果要合并的提交文件在master分支里有过操作,那合并后很可能会遇到冲突,直接解决冲突就OK了。