История коммитов
HEAD – это указатель, задача которого ссылаться на определенный коммит в репозитории.
git logПоказывает журналы фиксации.
Документация здесь.
Предположим, что в нашем тестовом репозитории мы 2 раза изменили файл README и записали изменения. Тогда результат выполнения команды git log --oneline будет иметь вид:
fbc8910 (HEAD -> main) Исправил замечание
90f038e Добавил описание о HEAD
02c9b2c Добавил README
Эти коммиты создавались в порядке от самого нижнего (02c9b2c) к самому верхнему (fbc8910). Каждый раз, когда мы записывали новый коммит в репозиторий, HEAD смещался и указывал на него.
После того как вы записали коммит с id = fbc8910, указатель HEAD стал показывать на него, т.е. данный коммит будет родителем для следующего, и когда мы сделаем еще один коммит, HEAD сместится.
Более подробно об указателе HEAD читайте в статье devpractice.ru
Пример ис тории коммитов (источник: tproger.ru):

Коммиты хранят состояние файловой системы в определённый момент времени и указатели на предыдущие коммиты. Каждый коммит содержит уникальную контрольную сумму — идентификатор, который Git использует, чтобы ссылаться на коммит. Чтобы отслеживать историю, Git хранит указатель HEAD, который указывает на первый коммит (мы следуем по цепочке коммитов в обратном порядке, чтобы попасть к предыдущим коммитам).
Мы можем ссылаться на коммит либо через его контрольную сумму, либо через его позицию относительно HEAD, например HEAD~4 ссылается на коммит, который находится 4 коммитами ранее HEAD.
Более подробную информацию о git log можно найти в статье на tproger.ru.
Атрибуция
При подг отовке статьи использован материал: