我刚刚经历了一次漫长的合并冲突,并注意到我的工作树中有一堆提交,这些提交应该在合并之前被压缩。我还没有推送合并,但我想避免在检查新分支并进行挤压后重新进行合并。
有没有一种方法可以让我执行类似于挑选合并提交但更改合并的相关父级的操作?
您可以在重做合并过程中使用
git checkout saved-branch .
将提交/分支的内容检出到当前沙箱中。
我假设您已将分支
feature
合并到 main
中,并希望在重做合并之前压缩 feature
中的一些提交。
我使用的解决方案是
通过给它一个新的分支名称来保存当前合并:
git branch saved-merge main
交互式地重新建立分支基础:
git checkout feature
git rebase --interactive <ref-to-parent-of-feature-branch>
重做合并,但不解决冲突,只需检查已保存合并的内容
git checkout main
git merge feature
git checkout saved-merge .
git commit
关键是这个
git checkout saved-merge .
:它将saved-merge
上的头提交的完整内容检查到您的沙箱中,用您第一次解决的版本覆盖所有带有冲突标记的文件。