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 для разбиения.