2

我有一个分支master,它有一个所谓的“修补程序分支” hotfix/foo,在那个修补程序分支上,我有几个提交,比如 A、B 和 C。

然后我将它合并到master中:

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

产生一个像我想要的那样的地图/图表:一次提交,在 master 中作为提交 Dmaster引入净更改:hotfix/foo

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

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

git pull --rebase origin master

突然,A、B、C 在master

_ A _ B _ C _ (master)

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

我在这里做错了什么?为什么它使我的历史变平,而不是维护修补程序分支中的提交?

4

1 回答 1

2

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

有关一些背景信息,请参见此处:git rebase "--preserve-merges --onto" 不保留合并

于 2013-06-05T11:44:56.053 回答