TortoiseGit:合并前查看分支差异文件并选择特定代码块合并的方法
TortoiseGit:合并前查看分支差异文件并选择特定代码块合并的方法
当然可以啦!TortoiseGit完全支持你这种「只挑需要的代码块合并」的需求,哪怕文件本身没有冲突,也能让你先看清楚差异,再手动选择要合并的内容。下面给你一步步拆解具体操作:
第一步:先查看分支间的所有差异
在动手合并前,你得先搞清楚两个分支到底有哪些文件不一样,以及具体的代码块差异:
- 在本地工作区的空白处右键,选择
TortoiseGit->Compare branches/tags - 在弹出的对比窗口里,选择你要合并的目标分支(比如你当前在
dev分支,想合并main分支的改动,就选main),点击确定 - 这时候会弹出差异列表窗口,所有有改动的文件都会列出来;双击任意文件,就能打开TortoiseGit的差异查看器,清晰看到两边代码的新增、修改部分,方便你提前规划要选哪些块
第二步:选择性合并特定代码块
因为没有冲突的话,普通合并会自动全量合并,所以我们需要用两种「手动干预」的方法来实现选择性合并:
方法一:强制进入冲突编辑模式(推荐)
这种方法可以让你在合并过程中直接逐文件、逐代码块选择保留内容:
- 右键工作区空白处,选择
TortoiseGit->Merge - 在合并设置窗口中,选好要合并的分支,然后勾选下方的 「Force conflict editing even if there are no conflicts」(强制进入冲突编辑模式,哪怕没有冲突)
- 点击确定后,TortoiseGit会弹出冲突解决界面,所有有差异的文件都会被标记为「需要处理」
- 双击每个文件打开合并工具(比如默认的TortoiseMerge),在这里你可以:
- 用工具栏的「取左/右侧代码」按钮,快速选择保留某一方的代码块
- 也可以手动编辑中间的合并结果,混合两边的内容
- 处理完一个文件后,记得点击「标记为已解决」,全部处理完后就可以提交合并后的改动了
方法二:生成补丁后选择性应用
如果想更灵活地挑选要合并的内容(比如只挑某几个文件里的某几行),可以用补丁的方式:
- 先切换到你要合并的目标分支(比如
main),右键空白处选择TortoiseGit->Create Patch... - 在补丁生成窗口中,选择所有有差异的文件(之后可以在应用时筛选),生成一个
.patch格式的补丁文件 - 切回你当前的工作分支(比如
dev),右键空白处选择TortoiseGit->Apply Patch... - 选择刚才生成的补丁文件,在应用窗口中:
- 你可以逐个文件勾选/取消,决定要不要合并这个文件
- 展开单个文件,还能看到里面的每一个代码块改动,精准勾选你想要合并的部分,取消不需要的
- 确认后应用补丁,之后就能提交这些选择性合并的内容了
备注:内容来源于stack exchange,提问作者Dan D
相关产品推荐
相关产品推荐

