Перейти к содержанию

Коммиты

Коммит должен представлять из себя некоторое законченное смысловое изменение. Коммиты стоит делать атомарными, т.е. в одном коммите изменения должны быть максимально сфокусированы. Не рекомендуется делать коммиты с громадными изменениями, тем более по нескольким задачам одновременно (кроме тех случаев, когда одно исправление сразу решает несколько задач).

Почему: атомарные изменения легче откатывать, отменять, переносить в другие ветки. Также это дисциплинирует делать изменения более компактным. Еще один плюс - более простой merge в другие ветки.

Суть коммита должна быть понятна из сообщения. Язык сообщения - русский. Сообщение говорит о проделанной работе, поэтому используется прошедшее время.

Сообщение коммита

Сообщение коммита должно иметь следующую структуру:

    ссылки_на_задачу_из_баг_трекера: название_подсистемы: комментарий

Пример сообщения для связки Jira:

    SAC-321 Billing: исправлены цены на страницы с общей информацией

Номер issue

Изменения должны делаться в рамках определенного issue (это может быть как задача, так и дефект), чтобы можно было быстро восстановить историю изменению и понять причину изменения кода. Если дефект или задача не заведена и изменение срочное или не требующее заведения issue, эту часть можно сообщения можно опустить.

Почему: Указываем номер задачи для связи коммита и задачи в Jira, чтобы потом можно было легче понять ход работы над задачей, восстановить контекст.

Название подсистемы

Если проект большой и состоит из нескольких подсистем, необходимо указывать те, в которые были внесены изменения. Если проект маленький, то эту часть можно пропустить.

Почему: Название подсистемы указываем, чтобы быстро понять, какие компоненты нужно будет обновить.

Комментарий

В комментарии должна быть короткая информация о сути внесенных в код изменений, объясняющих назначение коммита.

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