Коммит#
Коммит - Это отдельное сохранение (снимок) состояния ваших файлов в определенный момент времени. Является
фундаментальной единицей истории Git, которая сохраняет изменения и позволяет отслеживать эволюцию проекта.
Правила наименования коммитов#
Наименования постоянных коммитов являются фиксированными.
Общий формат коммита: Label(Scope): Subject #issue [Issue-Number]
Label - тип изменений в коммите:
feat- реализация нового функционала.fix- исправление ошибок.hotfix- оперативное исправление критических ошибок.test- добавление тестов.refactor- рефакторинг кода без изменения функциональности.docs- обновление документации.chore- прочие изменения, не подпадающие под указанные категории.
Scopes - опциональная область, в которую вносят изменения (компонент, страница, модуль или пакет).
Subject - короткое описание изменений. Оно начинается с заглавной буквы и краткого страдательного причастия.
Например: «Изменено», «Исправлены», «Указаны», «Реализован».
Issue-Number - номер задачи или документа поддержки, при наличии, либо notask.
Примеры названия коммита:
fix(rpl): Убрано поле "Источник" у входящих сообщений интеграции #issue 182831Tfeat(btk): Указаны подробности в описании БО #issue 217081Drefactor(gtk, btk): Перенесена логика кэширования #issue notask
Метаданные коммита#
Каждый коммит содержит следующие метаданные:
Уникальный хеш (SHA-1) - 40-символьный идентификатор, вычисляемый на основе содержимого коммита.
Автор - пользователь, создавший изменения в файлах.
Коммитер (Автор фиксации коммита) - пользователь, зафиксировавший изменения в репозитории.
Дата создания - временная метка фиксации.
Сообщение коммита - описание внесённых изменений.
Ссылки на родительские коммиты - указатели на непосредственных предков в истории (есть у всех коммитов, кроме первого).
Основные свойства#
1. Неизменяемость#
После создания, коммит не может быть изменён. Любая модификация приводит к созданию нового коммита с уникальным хешем. Это обеспечивает целостность и достоверность истории проекта.
2. Атомарность#
Коммит представляет собой логически завершённый набор изменений, который должен быть функционально целостным.
3. Ссылочная целостность#
Каждый коммит (кроме начального) ссылается на один или несколько родительских коммитов, формируя граф.
Коммит и ветвление#
История Git представляет собой направленный ациклический граф, где коммиты являются узлами, а связи между ними - рёбрами, указывающими на предков.

На изображении выше отображена типичная структура коммитов с демонстрацией их взаимосвязей и ключевых атрибутов.