Ради эксперимента, скажем, ваш 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
.