如何从PR的另一个分支中删除不需要的提交

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从PR的另一个分支中删除不需要的提交相关的知识,希望对你有一定的参考价值。

我做了一件蠢事。我从分支A分支,在一个新的分支上进行了更改,推送并将PR转换为分支B(也将很多不需要的提交带入其中)。

我的问题是我只需要在我做出更改的分支上删除几个提交,但我不知道该怎么做。有很多关于如何摆脱最后一次提交的信息,但在我的情况下,这正是我想要留在分支上的最后一次提交。

答案

您可以从分支创建新分支

git checkout branchB
git checkout -b newB

然后从上一个分支获取所需的更改(在这里称之为branchFromA

git cherry-pick branchFromA

(这个最后的command只选择了那个分支的最后一次提交*,就像你想要的那样)

它现在将是一个简单的快速合并分支:

git checkout branchB
git merge newB

或者对于这最后阶段,因为你似乎使用PR,只需将newB推到遥控器,从newBbranchB制作一个新PR,最后取消你的branchFromAbranchB PR。


*经常与显式提交引用一起使用,但您可以为其提供分支或标记名称,并且ref指向的提交将作为cherry-pick的目标

以上是关于如何从PR的另一个分支中删除不需要的提交的主要内容,如果未能解决你的问题,请参考以下文章

如何删除 Git 仓库中的历史提交记录

如何从已经重新定位的分支中删除特定的提交?

如何将当前分支与 Visual Studio 2019 中的另一个分支进行比较?

为啥还原的提交不会显示在新 PR 中?

使用GitHub Desktop提交PR

如何使用 1 个命令从 Git 的另一个分支中挑选最后一个 sha?