创建新分支后Git rebasing(squash)

时间:2018-02-14 08:32:18

标签: git git-rebase git-squash

假设我有以下提交历史记录:

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

现在我结帐到branch1并将提交bc提交到x。

我期待这样的事情发生。

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

但是在Branch1上运行git log时,它会显示:

a -- x

并且在Branch2上运行git log时,它显示:

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

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

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

如果我已经这样做了,我该如何解决?

1 个答案:

答案 0 :(得分:4)

  

现在我结帐到branch1并将提交b和c提交到x。

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

git checkout Branch2
git rebase -

重要提示确保在执行git rebase -之前,您需要进行rebase转换。在这种情况下,它是Branch1。如果你改变了分支,为什么首先回到Branch1,所以这样:

git checkout Branch1
git checkout Branch2
git rebase -