如何将冲突修复提交Squash到Git合并提交,无需重做冲突解决?
无需重做冲突解决的实现方法
完全可以不用重新处理冲突,通过Git的交互式变基就能把修复commit合并到之前的合并commit中,具体步骤如下:
切换到你的功能分支:
git checkout 功能分支名称启动交互式变基,目标是合并commit的前一个提交(假设合并commit是倒数第二个提交,修复commit是最新的那个,所以用
HEAD~2指定变基范围):git rebase -i HEAD~2在弹出的文本编辑器中,找到对应修复commit的那一行,将行首的
pick替换为squash(或缩写s),保存并退出编辑器。随后会弹出新的编辑器窗口,用于修改合并后的commit说明,按需调整后保存退出即可。
如果记不清合并commit的位置,也可以直接用合并commit的哈希值来指定变基起点,比如合并commit的哈希是abc123,就执行:git rebase -i abc123^
(^符号表示指向该commit的父提交)
注意:如果该功能分支已经推送到远程仓库,变基完成后需要执行强制推送:
git push -f,执行前请确认没有其他协作者正在该分支上工作,避免覆盖他人提交。
内容的提问来源于stack exchange,提问作者Anomaly
相关产品推荐
相关产品推荐

