Rebase 包括还原的提交

Rebase including reverted commit

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

* 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 从 "commit A" 尚未合并的时间点找出其待办事项列表。

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

git rebase -i undesired~ --onto develop

...其中 undesired 是还原合并提交的分支或 SHA。

另一种选择是:

git rebase -i HEAD~2 --onto develop

...意思是 "rebase the last two commits onto develop".