如何从另一个分支中删除不需要的提交以进行 PR
How do I remove unwanted commits form another branch for PR
我做了一件蠢事。我从分支 A 分支出来,在一个新分支上进行更改,将 PR 推送到分支 B(也带来了很多不需要的提交)。
我的问题是我只需要在我进行更改的分支上删除多个提交,但我不知道该怎么做。有很多关于如何摆脱最后一次提交的信息,但就我而言,这正是我想留在分支上的最后一次提交。
您可以从 branchB 创建一个新分支
git checkout branchB
git checkout -b newB
然后从上一个分支中获取您需要的更改(我们在这里称之为 branchFromA
)
git cherry-pick branchFromA
(最后一个 command 只选择了那个分支的最后一次提交*,就像你想要的那样)
它现在将是一个简单的快进合并到 branchB :
git checkout branchB
git merge newB
或者对于最后一个阶段,因为你似乎使用了 PR,只需将 newB
推送到远程,从 newB
到 branchB
创建一个新的 PR,最后取消你的branchFromA
到 branchB
PR。
*通常与显式提交引用一起使用,但您可以为其提供分支或标签名称,ref 指向的提交将作为 cherry-pick
的目标
我做了一件蠢事。我从分支 A 分支出来,在一个新分支上进行更改,将 PR 推送到分支 B(也带来了很多不需要的提交)。
我的问题是我只需要在我进行更改的分支上删除多个提交,但我不知道该怎么做。有很多关于如何摆脱最后一次提交的信息,但就我而言,这正是我想留在分支上的最后一次提交。
您可以从 branchB 创建一个新分支
git checkout branchB
git checkout -b newB
然后从上一个分支中获取您需要的更改(我们在这里称之为 branchFromA
)
git cherry-pick branchFromA
(最后一个 command 只选择了那个分支的最后一次提交*,就像你想要的那样)
它现在将是一个简单的快进合并到 branchB :
git checkout branchB
git merge newB
或者对于最后一个阶段,因为你似乎使用了 PR,只需将 newB
推送到远程,从 newB
到 branchB
创建一个新的 PR,最后取消你的branchFromA
到 branchB
PR。
*通常与显式提交引用一起使用,但您可以为其提供分支或标签名称,ref 指向的提交将作为 cherry-pick
的目标