包括恢复提交的Rebase
问题描述:
我想将我的特性分支合并到develop分支上。然而,其中一个提交恢复了我现在想要的提交。包括恢复提交的Rebase
* 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'具有相同的内容;也就是说,它们应用相同的更改。)
答
您需要帮助rebase
从尚未合并“提交A”的时间点算出其待办事项列表。
相反的git rebase -i develop
,请尝试:
git rebase -i undesired~ --onto develop
...其中undesired
或者是在一个分支或恢复合并的SHA提交。
另一种选择是:
git rebase -i HEAD~2 --onto develop
...意为 “最后的两次提交重订到develop
”。
+0
第一个选项完美运作。谢谢!! – TrueWill
第一个图不清楚。 '功能'与'develop'有关。正如你所画的那样,我会认为它们是独立的树,恰好在同一个数据库中,但从你所说的我对此表示怀疑。无论如何,它看起来并不像“A”在“开发”的历史中的任何地方,那么为什么*会有一个选项让它在“开发”的基础上出现? –
@MarkAdelsberger我修改了图表来显示关系。 – TrueWill
我会建议不要恢复合并。只需重置。 – evolutionxbox