Перейти к основному содержимому

История коммитов

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.

Атрибуция

При подготовке статьи использован материал: