我有一个分支,我将其用于合并的PR1
,然后我做了git pull origin master
,并与master合并。我现在正在使用同一分支来提交另一个PR-PR2
,但意识到它承载了来自PR1
的提交消息。我应该如何清除这些消息?
答案 0 :(得分:2)
通常,分支合并后请勿重用。每个功能使用一个分支:feature branches。分支合并后,请删除该分支,然后为下一个PR创建一个新分支。
您不想在旧分支上重做新提交。我们可以用git rebase master
来解决这个问题。运作方式如下。
您有一个分支,其中包含一些提交。
A - B - C [master]
\
D - E [feature]
已合并。
A - B - C ------ F [master]
\ /
D - E [feature]
现在,您已经向同一分支添加了更多提交。
A - B - C ------ F [master]
\ /
D - E - G - H [feature]
我们想要一个仅包含新提交G和H的分支。有多种方法可以实现此目的。最简单的是git rebase master
。这将在当前master
的顶部重播分支的提交。
A - B - C ------ F [master]
\ / \
D - E G1 - H1 [feature]
git rebase
将认识到master
已包含D和E的内容,因此将其跳过。 G和H将在master
顶部重播,并赋予新的提交ID,此处以G1和H1表示。
现在,您可以按feature
作为新的PR,只有G1和H1出现。合并后,请务必删除该分支,并使用一个新的PR。