Написание сообщений в Git
Данный документ содержит общие рекомендации по написанию сообщений при фиксации изменений в Git.
Эти рекомендации составлены на основе общеизвестных практик, а также личном опыте командной работы и автоматизации.
- Тема — это первая строка комментария, краткое описание.
- Тело — последующие строки, которые могут содержать более детальную информацию.
Включать номер задачи в тему сообщения
- Это поможет автоматизировать процесс фиксации и анализа выполненной работы по задаче.
- Это поможет найти задачу и понять, что происходило, когда возникнет такая необходимость. В больших проектах и при командной работе это случается чаще, чем может казаться.
✔️ Хороший пример | ⛔ Плохой пример |
---|---|
JIRA-1725: Добавить файл README.md | Добавил файл README.md |
Использовать повелительную форму в теме сообщения
В английском языке это, в первую очередь, решает проблему неправильного использования времен и, в целом, делает текст проще.
В русском языке повелительная форма тоже неплохо работает. Комментарий звучит как команда. Когда просматриваешь историю или накатываешь отдельные коммиты, это выглядит вполне логично, как выполнение скрипта, который делает определенные действия и комментарий фиксации — это и есть выполняемое действие.
✔️ Хороший пример | ⛔ Плохой пример |
---|---|
ISSUE-5217: Add CHANGELOG.md | ISSUE-5217: Added CHANGELOG.md |
ISSUE-5217: Обновить вызов внешнего сервиса | ISSUE-5217: Обновил вызов внешнего сервиса |
ISSUE-5217: Удалить аргументы из метода Foo | ISSUE-5217: Удалил аргументы из метода Foo |
Не ставить точку в теме сообщения
Первая строчка комментария не должна заканчиваться точкой. Это тема сообщения. Тема не может заканчиваться точкой.
✔️ Хороший пример | ⛔ Плохой пример |
---|---|
EXMPL-1925: Добавить метод загрузки | EXMPL-1925: Добавить метод загрузки. |
Тема должна быть максимально короткой и информативной
Первая строка комментария фиксации должна быть максимально короткой.
При этом, первая строка должна содержать максимум полезной информации, чтобы было понятно, что именно изменилось в коде.
Это необходимо для удобства и скорости просмотра истории. Причем удобство будет как при просмотре через интерфейс командной строки, так и в клиентах с графическим интерфейсом.
В среднем, рекомендуется использовать не более 50 символов.
✔️ Хороший пример | ⛔ Плохой пример |
---|---|
MYLLM-7841: Добавить конфигурацию клиента MCP | MYLLM-7841: Добавить в настройки адрес, порт и токен для подключения к серверу MCP |
Разделять тему и тело сообщения пустой строкой
Если комментарий многострочный, то между темой и телом следует разместить пустую строку.
Это сделает текст более удобным для восприятия.
✔️ Хороший пример | ⛔ Плохой пример |
---|---|
DATA-2078: Удалить таблицу Users Заказчик против хранения пользователей в базе. Теперь мы будем использовать внешнее облачное хранилище. | DATA-2078: Удалить таблицу Users Заказчик против хранения пользователей в базе. Теперь мы будем использовать внешнее облачное хранилище. |
Тело должно отвечать на вопрос "зачем всё это было сделано"
Хорошее тело сообщения должно пояснять, почему были сделаны изменения.
✔️ Хороший пример | ⛔ Плохой пример |
---|---|
AWESOME-2356: Добавить аргумент exclude Это позволит исключать не нужные данные из выборки. | AWESOME-2356: Добавить аргумент exclude Изменить логику функции. Небольшой рефакторинг. |
Разнообразие
Не стоит писать одинаковые сообщения к фиксациям. С такими сообщениями сложно работать, они не несут никакой полезной нагрузки.
✔️ Хороший пример | ⛔ Плохой пример |
---|---|
MYPROJECT-2518: Создать сервис отправки сообщений | MYPROJECT-2518: Реализация сервиса отправки сообщений |
MYPROJECT-2518: Создать тесты для сервиса отправки сообщений | MYPROJECT-2518: Реализация сервиса отправки сообщений |