我想将我的功能分支合并到开发分支上。但是,其中一个提交还原了我现在想要的提交。
* develop - merge revert PR |\ | * Revert undesired merge |/ * Merge (undesired) |\ | * commit A |/ | ... (lots of commits) | | * feature - commit B | * commit A' |/ *
git rebase -i develop
未显示提交A'。我尝试了各种选项(-p, - keep-empty,-f)但没有成功。
我怎样才能最终获得
* feature - commit B * commit A' / * develop - merge revert PR
没有单独采摘樱桃? (只有两个提交 - 这个例子很简单。)
(注意:最新的提交位于图表的顶部。另请注意,A和A'具有相同的内容;也就是说,它们应用相同的更改。)
答案 0 :(得分:2)
您需要帮助rebase
从尚未合并“提交A”的时间点找出其待办事项列表。
而不是git rebase -i develop
,请尝试:
git rebase -i undesired~ --onto develop
...其中undesired
是恢复合并提交的分支或SHA。
另一种选择是:
git rebase -i HEAD~2 --onto develop
...意思是“将最后两次提交改为develop
”。