git merge没有创建合并提交,没有MERGE_HEAD

时间:2013-11-14 18:50:57

标签: git merge git-merge

在Linux上使用Git 1.8.1.2,我一直在基于master并行处理两个不同的分支(称为A和B),还创建了第三个分支(称为M),它们将这些分支合并在一起两个分支 - 到目前为止还没有自己的非合并提交。

在其中一个“主要”分支(A)上做了一些工作后,我检查了合并分支(git checkout M),确认它已经包含B中的所有内容(git merge B报告{{ 1}}),所以我Already up-to-date.在A上提取新作品。

报告了一些合并冲突,这是预期的。我编辑受影响的文件以删除冲突标记,然后git merge A。到目前为止看起来都很正常。

但是当我git add时,提交消息没有表明这是合并。如果我继续,结果提交(在M分支中)看起来就像一个简单的提交(在我之前的A和B合并之上); git commit未报告git show个父母。在提交之前,Merge:包含.git(空),但没有MERGE_MODE

我没有使用任何特殊的合并策略,所以我认为正在使用默认值(MERGE_HEAD)。无论如何,这看起来不像是一个策略问题:工作树的内容看起来就像我期望的那样。

如果我在提交之前用A的头部的哈希手动创建recursive,则生成的提交看起来很正常,例如在MERGE_HEAD中,虽然这当然让我有些紧张。

可能发生什么事?这是Git中的一个错误 - 是否有任何理由在gitg命令之后没有创建MERGE_HEAD而没有创建提交? 1.8.4.3似乎有相同的行为。

1 个答案:

答案 0 :(得分:2)

我相信你应该使用

git merge --no-ff your_feature_branch