foundation

Коммит

Создавайте небольшие неизменяемые снимки с ясным intent, авторством, связями с родителями и diff для review.

Git-коммит — неизменяемый снимок плюс метаданные: ID родительских коммитов, author, committer, сообщение и tree object на blob'ы файлов. Коммиты образуют направленный ациклический граф — каждый знает родителя(ей), а не наоборот.

					git add src/auth.ts
git commit -m "fix(auth): reject expired refresh tokens"
				

Хороший коммит — одно логическое изменение, которое можно review, откатить, cherry-pick и объяснить через полгода. Staging (`git add -p`) позволяет разбить смешанные правки в рабочем дереве на отдельные коммиты.

На интервью: объясните идентичность коммита (SHA-1 от содержимого), зачем мелкие коммиты помогают review и bisect, как история поддерживает трассируемость релизов.

Типовые ошибки: огромные смешанные коммиты без точки отката; переписывание публичной истории без согласования; коммит секретов или generated-артефактов, которые должны быть в `.gitignore`.

Компромисс — детальная история (больше коммитов) против шума в review; единица должна быть логической, а не микроскопической.

Чеклист:

  • Объясните идентичность коммита и связи с родителями.
  • Одно логическое изменение на коммит.
  • Отделяйте форматирование от поведения.
  • Staging осознанно, с patch mode при необходимости.