【发布时间】:2013-10-11 07:14:46
【问题描述】:
我合并了一个长期存在的分支,但由于冲突解决,我花了一些时间来完成合并。
我发现我无法使用git-svn 发布我的工作:git svn rebase 将重新设置合并分支的所有提交,而不是提交一个合并提交。我发现git merge --squash 有点晚了……
是否可以在不丢失所有已完成的冲突解决工作的情况下将合并提交更改(rebase interractive?)合并提交为“壁球合并”提交(即不触发新的合并,因为我没有启用rerere 工具) ?
【问题讨论】:
-
我会尝试从合并提交的第一个父级分叉一个临时分支,然后将
git cherry-pick -m 1 <merge_commit>合并提交到它上面。如果一切正常,只需将原始分支重置为结果。 -
在提议的
git cherry-pick通话中,请参阅this 以获取有关-m 1的更多信息。 -
@kostix 建议的
git cherry-pick -m 1 <merge_commit>解决方案是这里最强大的解决方案,因为它还保留了提交信息。我已将其添加为下面的答案。