Git 创建新分支后变基(挤压)

Git rebasing (squash) after creating new branch

假设我的提交历史如下:

a -- b -- c                  <-- Branch1
           \
            d -- e           <-- Branch2

现在我结帐到 branch1 并将 bc 压缩到 x。

我预料到会发生这样的事情。

a -- x                  <-- Branch1
      \
       d -- e           <-- Branch2

但是在 运行 git 登录 Branch1 时,它显示:

a -- x

然后 运行 git 登录 Branch2,它显示:

a -- b -- c -- d -- e

现在,即使我结帐到 branch2 并压缩 bc,它也不会生成 x,而是生成一些其他提交哈希。

所以我的问题是,如何正确压缩这 2 个提交,以便它反映在所有分支中?

另外,一旦我已经这样做了,我该如何解决?

Now I checkout to branch1 and squash commits b and c into x.

之后你仍然在 Branch1 执行以下操作

git checkout Branch2
git rebase -

重要说明 在执行 git rebase - 之前确保您在需要变基的分支上。在本例中为 Branch1。如果你改变了分支,为什么要先回到 Branch1 就像这样:

git checkout Branch1
git checkout Branch2
git rebase -