相同的提交哈希,Windows上的Git和Linux上的Git之间的不同目录树

时间:2014-06-04 00:44:20

标签: git

我在Linux机器上有一个GIT存储库,其中HEAD提交的SHA1就是12345abcde。该存储库有几个子文件夹:

  ./
  |-foo
  |  |-bar2
  |-baz

当我将此存储库克隆到Windows计算机上时,我获得了相同的历史记录,但是具有不同的目录结构:

  ./
  |-foo
  |  |-bar1
  |  |-bar2
  |-baz

HEAD提交的SHA1值相同:12345abcde

这怎么可能?我的理解是,如果目录结构不同,则提交哈希值应该不同。

bar1曾经存在于历史记录中的某一点,已被删除并重命名为bar2。因此,Linux机器上的目录结构是正确的。

有没有人见过这个?有谁知道为什么会发生这种情况? 我已经回顾了历史,并比较了Windows和Linux机器上每次提交的提交哈希值。他们相配。

这怎么可能?

编辑:

Version on Windows (MSYSGit) : 1.8.5.2
Version on Linux (Ubuntu 12.04): 1.7.9.5

EDIT2:

After updating the version on Linux to 2.0.0, re-creating the repository 
and doing a clone to Windows, the directory trees and SHA1 hashes are consistent.
However, the SHA1 of HEAD on both Linux and Windows is now different - let's say
`67890defgh`

如果有人知道为什么会发生这种情况,我很乐意接受答案。这里的基本问题是如何从具有相同哈希值的相同提交列表中创建不同的目录结构?

0 个答案:

没有答案