0
在Git 1.7.5.4中,当我试图从软件的一个较老的版本分支合并到主人时,我收到了一些非常奇怪的行为。Git合并冲突与无关的文件?
$ 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 --raw
和git show --raw
来查看文件历史的哈希值。
它们根本不相似。该版本的git是Linux Mint目前的版本,但我会尝试获得更新的版本。 – 2012-07-13 02:30:45