Правила ведения git ¶
Важно: Требуется дополнить статью, описав правила ведения веток, тестирования, релизов и т.д.
Формат Комментариев к Коммиту¶
- Заголовок Коммита:
- Формат:
<Область>: <Тип изменения>: <номер задачи>: краткое описание - Длина: Не более 50 символов.
- В заголовке обязательно указывать номер задачи (очередь + номер, например, PLQM-1234) как тег.
- Область изменений:
core— изменения в ядре системы (базовая функциональность)ibp— изменения в шаблоне IBP (Integrated Business Planning)apps— изменения в других приложениях бизнес-логики
-
Типы изменений:
feat: Добавление нового функционала.fix: Исправление ошибок.docs: Изменения в документации.style: Изменения, не влияющие на код (например, форматирование).refactor: Изменения в коде, которые не исправляют баги и не добавляют новые функции.test: Добавление или исправление тестов.chore: Обновление задач сборки или вспомогательных инструментов и библиотек.
-
Тело Коммита (опционально):
- Описание: Более детальное описание изменений.
- Формат: Каждая строка не более 72 символов.
-
Содержимое: Объясните, что изменилось и почему. Укажите, если изменения решают какую-то проблему или добавляют новую функциональность.
-
Футер Коммита (опционально):
- Использование: Для указания дополнительных метаданных, таких как ссылки на задачи или тикеты.
- Пример:
Closes #123,Refs #456. - Ссылка на задачу в трекере (
@https://tracker.yandex.ru/QUEUE-XXXX) может быть добавлена в конце футера по желанию.
Пример Коммита¶
core: feat: PLQM-1234: добавлен новый модуль авторизации
Добавлен новый модуль авторизации, который поддерживает OAuth2.
Это позволит улучшить безопасность и упростить процесс входа для пользователей.
Closes #789
@https://tracker.yandex.ru/PLQM-1234
ibp: fix: IBP-124: исправлен расчет KPI для S&OP (refs #124)
apps: docs: APPS-125: обновлена документация по импорту данных (#125)
Рекомендации¶
- Указывайте область изменений: core, ibp или apps в начале заголовка коммита.
- Будьте краткими: Заголовок должен быть кратким и информативным.
- Будьте ясными: Тело коммита должно четко объяснять, что и почему было сделано.
- Используйте активный залог: Пишите в активном залоге, чтобы сделать коммиты более понятными.
- Следуйте стандартам: Используйте стандарты, такие как Conventional Commits, для обеспечения согласованности.
- Указывайте ссылку на задачу: Включайте ссылку на задачу, в рамках которой был сделан коммит, так как это необходимо для интеграции с трекером.
Стратегия Ветвления и Слияния¶
Основные Ветки¶
- main (основная ветка):
- Содержит стабильный код, готовый к релизу
- Защищена от прямых коммитов
- Принимает только слияния из ветки
test -
Каждый коммит в main должен быть тегирован версией релиза
-
test (тестовая ветка):
- Содержит код, прошедший тестирование
- Принимает слияния из ветки
dev - Используется для финального тестирования перед релизом
-
После успешного тестирования сливается в
main -
dev (ветка разработки):
- Основная ветка для разработки
- Принимает слияния из веток разработчиков
- Используется для интеграционного тестирования
- Регулярно сливается в
test
Ветки Разработчиков¶
- Формат имени ветки:
где:
TASK-123_краткое_описание_задачи TASK-123- номер задачи в трекере-
краткое_описание_задачи- краткое описание на английском языке -
Подготовка к работе:
- Перед началом работы над задачей создается Merge Request в git-интерфейсе
- Merge Request создается из будущей ветки в
dev - В описании Merge Request указывается:
- Ссылка на задачу в трекере
- Краткое описание планируемых изменений
-
Merge Request остается открытым на весь период работы над задачей
-
Правила работы с ветками:
- Создаются от ветки
dev - Одна ветка = одна задача
- После завершения работы сливаются обратно в
dev - Должны быть актуальными (регулярный rebase с
dev)
Hot-fix Процесс¶
- Создание hot-fix ветки:
hotfix/TASK-123_краткое_описание - Создается от ветки
main -
Используется для срочных исправлений в production
-
Процесс работы с hot-fix:
- Исправление вносится в hot-fix ветку
- Тестируется через слияние в
test - После успешного тестирования сливается в
main - Версия в
mainинкрементируется (patch) - Изменения также сливаются в
dev
Процесс Слияния¶
- Слияние в dev:
- Создается Pull Request
-
Сливается в
dev -
Слияние в test:
- Происходит после фиксирования в
dev -
Требует нагрузочного тестирования и тестирование базового функционала
-
Слияние в main:
- Происходит только после успешного тестирования в
test - Требует создания тега версии