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