合并分支没有“同时”更改并保持分支结构

时间:2013-01-17 22:24:10

标签: git git-branch git-merge

当我有这样的分支时:

      A---B---C topic
     /
D---E---F---G master

并将主题合并回主人,我会得到这个:

      A---B---C topic
     /         \
D---E---F---G---H master

现在,即使我删除topic分支(假设它只是一个本地开发分支而我只推master),我仍然会有信息,有一个功能实现从E开始,到H结束。

当我在master分支上工作时,topic分支上没有同时提交时,是否可以保持同样的信息?例如:

      A---B---C topic
     /
D---E master

如果我现在合并,我会得到这个:

D---E---A---B---C master/topic

如果删除主题分支,将来我将无法获得topic分支中实现的功能的信息。即使我保留了分支机构,我也不知道它从哪里开始。

我更愿意保留父母,并且有这样的事情:

      A---B---C topic
     /         \
D---E-----------F master

我认为这是svn的默认行为。我可以用git实现同样的目标吗?

1 个答案:

答案 0 :(得分:4)

是的,即使合并解析为快进案例,使用--no-ff标志也会创建合并提交。示例(假设您从C开始):

git checkout E
git merge --no-ff C

有关详细信息,请参阅git-merge(1)文档。