Git 携带来自已合并的 PR 的旧提交消息

Git carries old commit messages from PRs that have been merged

我有一个分支,我用它做PR1,合并了,然后我做了git pull origin master,和master合并了。我现在正在使用同一个分支提交另一个 PR - PR2,但我意识到它带有来自 PR1 的提交消息。我应该如何删除这些消息?

一般来说,合并后的分支不要重复使用。每个特征使用一个分支: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 使用新分支。