Почему git назначает одинаковый хэш файлам с разными именами и местоположением?
Почему 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
Спасибо
1 ответ
Решение
Потому что содержание одинаково!
Git отслеживает содержимое в объекте blob.
Пути разрешаются с помощью git с объектами дерева.
Вы можете прочитать Pro Git - Git Internals - Git Objects, чтобы узнать, как git хранит данные.