为什么 git 将相同的哈希分配给具有不同名称和位置的文件?

Why does git assign same hash to files with different names and location?

为什么git将相同的SHA-1分配给不同名称和不同位置的文件,尽管内容相同?

100644 43efcd84207788e5289ee23a9ce95d9f43b13d9a 0 dir1/dir1_d2/dir1_d2_f1.txt 100644 43efcd84207788e5289ee23a9ce95d9f43b13d9a 0 test.txt

显示文件内容:

$ git cat-file -p 43efcd84207788e5289ee23a9ce95d9f43b13d9a Line 1

谢谢

因为内容是一样的!

Git 跟踪 blob 对象中的内容。
路径由 git 与树对象解析。

您可以阅读 Pro Git - Git Internals - Git Objects 了解如何 git 存储数据。