如何变基包含合并提交及对应分支点的Git分支?
问题描述
尝试将分支tmp/20241220-rebase-source的提交交互式变基到tmp/20241220-rebase-target,待变基的提交包含一个分支点及对应的合并提交ba87116b(该提交曾手动解决过冲突,希望原样变基它)。
分支tmp/20241220-rebase-source的提交结构如下:
* 1df0fff2 * f2659d53 * ba87116b <-- 该提交曾手动解决过冲突,我希望原样变基它 |\ | * decacca4 * | 22820e76 |/ * 212d1db1 * 304733f0 * e7d2ed57 * 78fd41bf * 15251fab * 6854d87c * 53d2b1c8 * fbf44673 * 911afc16 * bb56930f * 75d7085d * 23674b1a <- 该提交已被拣选到`tmp/20241220-rebase-target`并手动解决了冲突(后续提交未修改该文件,不应再冲突) | <- 以下为变基时需忽略的其他提交 |
已拣选第一个提交23674b1a并手动解决了单个文件的冲突,其余提交均为新增文件,理论上不应产生冲突。执行的变基命令:
git checkout tmp/20241220-rebase-source git rebase --rebase-merges --onto tmp/20241220-rebase-target --interactive 23674b1a
但运行命令后,合并提交ba87116b出现冲突:
(tmp/20241220-rebase-source)> git rebase --rebase-merges --onto tmp/20241220-rebase-target --interactive 23674b1af2c7d4451ba5a5b788e91fcaf9d3e90d Auto-merging example_form_xml/form1/file1.xml CONFLICT (content): Merge conflict in example_form_xml/form1/file1.xml Auto-merging example_form_xml/form1/file2.xml CONFLICT (add/add): Merge conflict in example_form_xml/form1/file2.xml Could not apply ba87116b...
希望直接原样变基该提交,询问是否可行及操作方法。
解决方案
可行,Git提供了多种方式复用合并提交的冲突解决结果,具体操作步骤如下:
终止当前失败的变基
如果当前处于变基冲突状态,先退出变基流程:git rebase --abort启用
rerere自动复用冲突解决结果
Git的rerere功能可以记录并复用之前的冲突解决结果,先确保该功能开启:# 全局开启(所有仓库生效) git config --global rerere.enabled true # 或仅当前仓库开启 git config rerere.enabled true重新执行原变基命令:
git checkout tmp/20241220-rebase-source git rebase --rebase-merges --onto tmp/20241220-rebase-target --interactive 23674b1a当遇到ba87116b的冲突时,Git会自动匹配并复用之前手动解决的结果,无需再次处理。
手动复用原合并提交的解决结果
如果rerere未自动生效,可直接从原合并提交中提取已解决的文件:- 当变基卡在ba87116b冲突时,执行命令覆盖冲突文件:
git checkout ba87116b -- example_form_xml/form1/file1.xml example_form_xml/form1/file2.xml - 标记冲突文件已解决:
git add example_form_xml/form1/file1.xml example_form_xml/form1/file2.xml - 继续完成变基:
git rebase --continue
- 当变基卡在ba87116b冲突时,执行命令覆盖冲突文件:
验证变基结果
变基完成后,检查提交结构和文件内容,确认冲突解决结果已正确复用:git log --graph --oneline git diff tmp/20241220-rebase-target..tmp/20241220-rebase-source
内容的提问来源于stack exchange,提问作者packoman
相关产品推荐
相关产品推荐

