我正在查看有关如何撤消错误合并的文档:https://www.kernel.org/pub/software/scm/git/docs/howto/revert-a-faulty-merge.html
我想知道如何在错误合并之后重做功能分支的拉取请求。我不想改变主线分支的历史。要重做pull请求,我认为我需要在还原提交后重做更新主线之上的更改。否则,我的原始提交不会出现在新的拉取请求的差异中,因为它们已经成为主线历史的一部分。
在该文件中,以下是我遇到问题的部分:
如果旁边分支的开发人员丢弃他们有缺陷的A和B,并在恢复之后在更新的主线之上重做更改,那么历史记录将如下所示:
---o---o---o---M---x---x---W---x---x
/ \
---A---B A'--B'--C'
我的功能分支在头部与B
合并,M
是合并提交,W
是我的功能分支合并提交的恢复。因此,如果我正在处理该功能分支,如何重做我的更改以创建A'--B'--C'
分支?我应该选择所有现有的提交吗?
基本上,我希望从这里开始:
---o---o---o---M---x---x---W---x---x
/
---A---B
到这里:
---o---o---o---M---x---x---W---x---x
/ \
---A---B A'--B'--C'
git rebase <mainline-branch> <feature-branch>
不会从现有提交中创建新提交,因为这些提交已经是历史记录的一部分(尽管合并已被还原)。
答案 0 :(得分:1)
是的,您应该签出x并创建一个新的分支,然后挑选提交A和B.这将为您提供最终的图表。