Git与不相关的文件合并冲突?

时间:2012-07-11 20:46:51

标签: git merge conflict

当我尝试从我们软件的一个旧版本分支合并到主服务器时,我在Git 1.7.5.4中遇到了一些非常奇怪的行为。

$ git checkout master
$ git merge 0.1.2.3
[...]
Auto-merging ProjectA/src/main/groovy/com/example/package/Something.groovy
CONFLICT (content): Merge conflict in ProjectA/src/main/groovy/com/example/package/Something.groovy
[...]
Automatic merge failed; fix conflicts and then commit the result.

看着那个文件,我看到一些非常奇怪的东西:

$ cat ProjectA/src/main/groovy/com/example/package/Something.groovy

<<<<<<< HEAD
[contents of ProjectA/src/main/groovy/com/example/package/Something.groovy]
=======
[contents of ProjectC/src/main/groovy/com/example/something/Different.groovy !!]
>>>>>>> 0.1.2.3

另一个分支上不存在Something.groovy文件。主分支上不再存在Different.groovy文件。我本来期望得到关于该文件不存在的合并冲突警告。我没想到它与另一个项目中完全不相关的文件错误地相关。

知道什么可能导致这样的事情?我认为这不是哈希冲突,使用git log --rawgit show --raw查看文件历史记录的哈希值。

1 个答案:

答案 0 :(得分:0)

我会抓住最新版本的git并再试一次。你正在使用的那个已经超过一年了。

其次,检查文件内容是否相似。 Git根据内容检测文件的移动,并使用它来帮助合并分支。