SHA-1 коммитов рассчитывается только на основе содержимого дерева?
Ради эксперимента, скажем, вашgit log
определяет следующие коммиты
commit 16bc8486fb34cf9a6faf0f7df606ae72ad9ea438 // added 2nd file
commit 9188f9a25b045f130b08888bc3f638099fa7f212 // initial commit
После совершения.git/refs/heads/master
указывает на 16bc8486fb34cf9a6faf0f7df606ae72ad9ea438.
Допустим, после этого я вручную редактирую.git/refs/heads/master
указать файл 9188f9a25b045f130b08888bc3f638099fa7f212
На этом этапе git status распознает, что новый незафиксированный файл нуждается в некотором внимании. Это тот же файл, о котором раньше заботился мой второй коммит.
Если я совершу это ..git log
сейчас показывает
commit b317f67686f9e6ab1eaabf47073b401d677205d5 // 2nd file committed for the 2nd time
commit 9188f9a25b045f130b08888bc3f638099fa7f212 // initial commit
Вопрос 1:
Вы заметите, чтоSHA
хеши разные в самый первый раз, когда я записывал второй файл, и сейчас. Почему это? Содержимое файла не изменилось, это все тот же файл.
вопрос 2
На этом этапе, что случилось с оригинальным вторым коммитом? Когда я делаюgit show 16bc8486
показывает это коммит. Это, однако, не отображается вgit log
история.