我做了一件蠢事。我从分支A分支,在一个新的分支上进行了更改,推送并将PR转换为分支B(也将很多不需要的提交带入其中)。
我的问题是我只需要在我做出更改的分支上删除几个提交,但我不知道该怎么做。有很多关于如何摆脱最后一次提交的信息,但在我的情况下,这正是我想要留在分支上的最后一次提交。
您可以从分支创建新分支
git checkout branchB
git checkout -b newB
然后从上一个分支获取所需的更改(在这里称之为branchFromA
)
git cherry-pick branchFromA
(这个最后的command只选择了那个分支的最后一次提交*,就像你想要的那样)
它现在将是一个简单的快速合并分支:
git checkout branchB
git merge newB
或者对于这最后阶段,因为你似乎使用PR,只需将newB
推到遥控器,从newB
到branchB
制作一个新PR,最后取消你的branchFromA
到branchB
PR。
*经常与显式提交引用一起使用,但您可以为其提供分支或标记名称,并且ref指向的提交将作为cherry-pick的目标