如何在无需重新解决冲突的情况下编辑合并前的提交信息?
解决方案
步骤1:启用冲突复用功能(RERERE)
先确保Git能自动复用已解决的冲突结果,执行以下命令开启功能:
git config rerere.enabled true
步骤2:带合并保留的交互式变基
执行交互式变基操作,指定要修改的提交(dac8571)的父提交(1cf1712),并添加--rebase-merges参数(Git 2.18及以上版本支持,旧版本可替换为--preserve-merges),这个参数能保留分支中原有的合并提交结构,避免冲突被重新触发:
git rebase -i --rebase-merges 1cf1712
步骤3:标记需修改的提交
在弹出的编辑器里,找到对应dac8571的行,将开头的pick替换为reword(或简写r),保存并退出编辑器。
步骤4:修改提交信息
Git会自动推进变基流程,遇到合并提交时会通过RERERE自动调用之前的冲突解决结果,无需手动处理。随后会弹出新的编辑器,修改dac8571的提交信息为目标内容,保存退出即可。
步骤5:完成变基
变基结束后,你的分支历史中dac8571的提交信息已更新,合并提交的冲突解决结果完全保留,代码无任何改动。
内容的提问来源于stack exchange,提问作者RareScrap
相关产品推荐
相关产品推荐

