【发布时间】:2019-07-19 15:57:17
【问题描述】:
我做了一件愚蠢的事。我从分支 A 分支,在新分支上进行了更改,将 PR 推送到分支 B 中(也带来了很多不需要的提交)。
我的问题是我只需要在我进行更改的分支上删除几个提交,但我不知道该怎么做。有很多关于如何摆脱最后一次提交的信息,但就我而言,这正是我想留在分支上的最后一次提交。
【问题讨论】:
我做了一件愚蠢的事。我从分支 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 推送到遥控器,将新的 PR 从 newB 到 branchB,最后取消您的 branchFromA 到 branchB PR .
*通常与显式提交引用一起使用,但您可以为其提供分支或标记名称,并且 ref 指向的提交被视为樱桃选择的目标
【讨论】: