为什么我的--no-ff提交在git pull --rebase origin之后崩溃进入master分支?

时间:2013-06-05 11:35:10

标签: git git-rebase

我有一个分支master,它有一个所谓的“hotfix-branch”,hotfix/foo,在那个hotfix-branch上,我有几个提交,比如A,B和C.

然后我将它合并到master中:

git checkout master
git merge --no-ff hotfix/foo

导致我希望它成为一个地图/图形:master上的一次提交,将hotfix/foo上的净更改作为提交D介绍给主人:

  _ A _ B _ C _   (hotfix/foo)
_/_____________\ D _ (master)

现在,当我更新我的主人以确保我了解同事可能推到那里的最新作品时,事情变得奇怪:

git pull --rebase origin master

A,B,C突然出现在master

_ A _ B _ C _ (master)

这可能是由--rebase标志引起的。我使用该标志来避免将上游更改合并到我的master

我在这里做错了什么?为什么它会使我的历史变得扁平化,而不是维护hotfix-branch中的提交?

1 个答案:

答案 0 :(得分:2)

尝试使用带有--preserve-merges标记的rebase。

请参阅此处了解背景资料:git rebase "--preserve-merges --onto" doesn't preserve merges

相关问题