Skip to content

Instantly share code, notes, and snippets.

@r3code
Forked from bibendi/gist:7941823
Last active April 15, 2025 07:09
Show Gist options
  • Save r3code/35033ab7a4d28cc794da1ef913c4366b to your computer and use it in GitHub Desktop.
Save r3code/35033ab7a4d28cc794da1ef913c4366b to your computer and use it in GitHub Desktop.
Оформление коммитов

Общепринятые коммиты

Как писать сообщения коммитов (сообщение при фиксации кода в систему хранения версий кода), которые удобны для чтения людьми и машинами. В итоге это может дать нам возможность автоматически генерировать Changelog, и автоматически выпускать новые версии при добавлении возможностей.

За основу взято соглашение https://www.conventionalcommits.org/ru/v1.0.0-beta.4/

Для оформления сообщения коммита следует использовать следующий шаблон:

<тип>(<область>): <описание изменения>
<пустая линия>
[необязательное тело]
<пустая линия>
[необязательный нижний колонтитул]

Заголовок

Тип коммита

Возможные типы:

  • возможность - используется при добавлении новой функциональности уровня приложения (необходимо изменить MINOR версию приложения, см. SemVer)
  • исправление - если исправили какую-то серьезную ошибку (bug, необходимо изменить PATCH версию приложения, см. SemVer)
  • доки - всё, что касается документации
  • стиль - исправляем опечатки, исправляем форматирование кода, переименование переменных/типов/классов/констант, добавили комментарии
  • рефакторинг - рефакторинг кода приложения, улучшение кода без изменения функциональности
  • тест - всё, что связано с тестированием
  • прочее - обычное обслуживание кода, например переместили файл, удалили зависимость в проекте

Можно указывать несколько типов через запятую.

Версия приложения может иметь формат:

Область действия

Здесь следует написать затронутые части (например, apiserver или руководство оператора)

Сообщение

  1. Рекомендуем писать сообщения коммитов так, как будто вы уже выпустили продукт. Как правило, кто-то, например, ваши коллеги, уже используют ваш код. И они хотят знать, что исправилось, что изменилось, какие нарушения обратной совместимости появились и т.д.
  2. Если один коммит содержит несколько изменений, лучше разбить его на несколько, если это возможно.
  3. Что мне делать, если я случайно использовал не тот тип коммита? Измените сообщение лога (для SVN). Для GIT отредактировать историю git rebase -i.

Лучше написать грамотно по-русски, чем неграмотно по-английски!

Общий стиль описания:

действие (с маленькой буквы) + для какой сущности + (необязательно подробности)

На русском:

исправление ошибки NoMethodError в RemoteReader'е

Первое слово - отглагольное существительное.

Не писать в сообщении номер задачи из Redmine или Trac - для этого есть тело коммита (см. далее).

Например

исправление(eventlog): исправлено сохранение события в базу данных
документы(все): исправлены опечатки в фамилии исполнителя
стиль(js): выполнено форматирование кода, исправлены опечатки в именах переменных

Тело

Заполнение тела коммита опционально. Нужно в том случае, если описание решенной проблемы достаточно сложно и не может уместиться в строку заголовка. Также сюда можно писать номер закрываемого (закрываемых) тасков из Redmine или Trac. Тело сообщения отделяется от заголовка одной пустой строкой и заполняется произвольно.

Тело может содержать указание на наличие изменения, ведущего к обратной несовместимости с предыдущей версией. Это отмечается указанием в начале строки фразы "ВАЖНОЕ ИЗМЕНЕНИЕ:" далее указывается то, что изменилось в API приложения. Наличие важного изменения говорит о необходимости изменить MAJOR версию продукта.

Если вы ссылаетесь на задачу в Redmine или Trac, указываете другую мета информацию, то размещайте ее построчно. Одна еденица иформации - одна строка.

Примеры

Сообщение без указания области

исправление: устранены незначительные ошибки в коде

Сообщение с указанием области

исправление(eventlog): исправлено сохранение события в базу данных

Сообщение с дополнительной информацией о задаче

исправление(eventlog): исправлено сохранение события в базу данных

закрывает #2014
Обсуждение тут http://####.xx/sss

Сообщение о важном изменении, ломающим обратную совместимость

возможность(прокладчик тракта): изменена структура базы данных для обеспечения создания нескольких связей между сосоедей

ВАЖНОЕ ИЗМЕНЕНИЕ: в структуре базы данных изменилась структура, необходимо выполнить ручное обновление и проверку 
данных после

Инструкция по обновлению: обновите базу данных скриптом, затем запуститие скрипт update_links.bat, 
в файле отчет проверьте какие связи нужно создать заново вручную
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment