SourceTree 合并分支上的多个提交,一次性合并分支的多次提交至另一分支,主分支前进时的合并冲突解决
目录
1 合并分支上的多个提交
已准备好一个分支,三个提交。
此例中,我需要合并item 1、item 2与item 3的提交。
使用cherry pick
,即SourceTree中的交互式变基
功能。
- 选中item 1的上一次提交;
- 右键选择交互式变基。
使用交互式变基功能中的使用此前的squash
。
- 选中要合并的最后一次提交;
- 点击
使用此前的squash
。
重复操作,直到合并完所有的commit。
合并完成后点击确定。也可以选择在确定前编辑信息修改commit的备注。
修改信息界面:
合并完成:
2 一次性合并分支的多次提交
实际功能是:将a分支上的提交打包为一个合并到b分支,并且保留a分支的历史记录。
已准备好两个分支,三个提交。该功能用的是git的git merge --no-ff
命令,禁用fast-forward
提交。
此例将dev-test-item上的3个提交打包为一个合并到dev-test分支上,并且保留dev-test-item的历史记录。
点击SourceTree的命令行模式。(在网上找了一圈没发现图形化操作方法)
使用命令:
- git checkout dev-test //切换到主分支
- git merge --no-ff dev-test-item //一次性合并分支的多次提交
执行merge后填写注释信息。
合并完成:
此时仍然可以继续在原分支上继续工作。
2.1 主分支前进一个版本
此例主分支已前进。
从远端拉取主分支,与当前分支进行合并,解决冲突后再提交回主分支。
解决冲突:
会生成几个文件,更改文件后选择标记为已解决
。
然后来一遍merge --no-ff操作
合并后:
2.2 主分支前进多个版本
此例主分支前进了3个版本。
使用git merge --no-ff
指令,提示要解决冲突:
此时去查看冲突的文件:
手动解决冲突后:
- 使用
git add
命令,将修改后的内容添加到工作区; - 使用
git commit -m '注释内容'
命令,提交修改。
合并后:
之后再次使用git merge --no-ff
合并dev-test-item至dev-test。
合并完成: