Как ответить
Коммиты в Git нужны, чтобы фиксировать состояние кода в определённый момент. Это не просто сохранение — это чекпоинт, к которому можно вернуться, и элемент коммуникации внутри команды. Хорошая история коммитов превращает репозиторий в документацию проекта.
Разберу на примере. Допустим, вы нашли баг в продакшене через месяц после релиза. Вы запускаете git bisect — он автоматически находит коммит, который всё сломал. Если коммиты были атомарными (один коммит — одно изменение), вы сразу видите конкретную правку. Если же в коммите смешаны исправление бага, рефакторинг и форматирование кода, разбираться придётся вручную.
Сообщение коммита — это ответ на вопрос «зачем сделано это изменение?». Вот плохой пример:
fix bugИз такого сообщения непонятно, какого бага, где и почему. Хороший пример:
auth: fix token expiration check on login
Проверка срока действия токена не учитывала часовой пояс сервера, что
приводило к преждевременному logout в регионах UTC+3 и далее.
Добавлено приведение времени к UTC перед сравнением.Такое сообщение позволяет за пять секунд понять суть изменения, не открывая diff. Это важно при код-ревью, при переносе изменений в другую ветку, при генерации changelog.
Ещё один практический момент: git revert и git cherry-pick. Если коммит атомарный и с понятным сообщением, вы можете откатить конкретную фичу, не трогая остальное. Если коммит огромный — либо откатывать всё, либо разбираться вручную, теряя время.
В итоге, коммиты нужны для:
- Отслеживания истории изменений и возврата к любой точке;
- Упрощения поиска источника багов (git bisect);
- Чистого код-ревью (рецензент видит логику изменения, а не мешанину);
- Автоматической генерации релизных заметок.
Для джуниора это база: писать осмысленные сообщения и дробить изменения — навык, который делает работу команды быстрее и надёжнее.