Почему 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 хранит данные.

Другие вопросы по тегам