Rebase包括恢复提交

问题描述 投票:0回答:1

我想将我的功能分支合并到开发分支上。但是,其中一个提交恢复了我现在想要的提交。

* 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'具有相同的内容;也就是说,它们应用相同的更改。)

git rebase git-rebase git-revert
1个回答
2
投票

你需要帮助rebase从尚未合并“提交A”的时间点找出它的待办事项列表。

而不是git rebase -i develop,尝试:

git rebase -i undesired~ --onto develop

...其中undesired是恢复合并提交的分支或SHA。

另一种选择是:

git rebase -i HEAD~2 --onto develop

...意思是“将最后两次提交改为develop”。

© www.soinside.com 2019 - 2024. All rights reserved.