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 история.

Ответы на вопрос(3)

Ваш ответ на вопрос