git把一个分支上的某个提交合并到另一个分支
在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分支的远程仓库。这样就完成了,合并某次提交到另一分支的操作。
如果是通过git命令进行操作可以参考如下文章: