intermediate

Атомарные коммиты

Группируйте одно логическое изменение в коммите, чтобы review, revert, cherry-pick и bisect оставались эффективными.

Атомарный коммит объединяет одно связное изменение с тестами и документацией. Коммит должен стоять отдельно: review, revert, cherry-pick и объяснение в одном предложении.

					# разбить смешанные правки
git add -p src/auth.ts
git commit -m "fix(auth): reject expired refresh tokens"
git add -p src/auth.ts
git commit -m "refactor(auth): extract token parser"
				

По возможности отделяйте рефакторинг от изменения поведения — на этой границе держатся review и `git bisect`.

На интервью: patch staging, разбиение большой ветки перед PR, как атомарные коммиты помогают revert при инциденте и release notes.

Типовые ошибки: один коммит с фичей + чужим fix + форматом; микроскопические коммиты без ясности, но с шумом в review.

Компромисс — число коммитов против логической независимости; оптимизируйте для следующего отладчика, не для минимума SHA.

Чеклист:

  • Одно логическое изменение на коммит.
  • Тесты вместе с поведением в том же коммите.
  • Механика отдельно от семантики.
  • Interactive staging для разбиения.