Перейти к основному содержимому

Система управления версиями

Общие сведения

Для управления версиями исходного кода конфигураций 1С можно использовать:

  • Хранилище 1С — встроенный механизм платформы 1С:Предприятие
  • Git — распределённая система управления версиями

Сравнение подходов

КритерийХранилище 1СGit
Интеграция с платформойВстроеннаяТребует дополнительных инструментов
Работа с конфигурациейНативнаяЧерез выгрузку в файлы
CI/CD интеграцияОграниченнаяПолная
ВетвлениеНе поддерживаетсяПолная поддержка
Распределённая работаТребуется соединениеПолная автономность

Соглашение о коммитах

Все помещения изменений должны быть осмысленно описаны. Главным ориентиром является популярное соглашение Conventional Commits.

Важно

Это соглашение применяется как для хранилища 1С, так и для Git.

Формат сообщения коммита

[Тип](необязательный контекст): [Короткое описание] (номер задачи)

[необязательное тело]

[необязательная(ые) сноска(и)]
Примечание

При использовании методологии gitflow в тексте коммита не указывается номер задачи. Достаточно указать его один раз — в заголовке или теле запроса на слияние (Merge Request / Pull Request).

Типы коммитов

Чтобы изменения автоматически включались в список изменений (CHANGELOG.md), необходимо выбирать правильный тип:

ТипГруппаОписание
featFeaturesНовая функция (новый документ, обработка, отчёт, изменение команды и т.д.)
fixBug FixesИсправление багов/ошибок (ошибка в ЖР, баг от заказчика, замечание от QA)
docsDocumentationИзменяется только документация (справка в конфигураторе или каталог doc)
perfPerformanceИзменение кода, повышающее производительность (оптимизация запросов, блокировки)
refactorRefactorРефакторинг кода (изменение без исправления ошибки или добавления функций)
styleStylingИзменения, не влияющие на смысл кода (форматирование, пробелы)
testTestingДобавление или исправление тестов
choreMiscellaneousДругие изменения, не влияющие на исходный код или тесты
ciMiscellaneousНастройка CI/CD (Pipeline)
revertRevertОтмена прошлых изменений

Служебные коммиты (не включаются в CHANGELOG)

ТипОписание
chore(release): prepare for x.x.x.xПодготовка к релизу
chore(deps.*)Обновление зависимостей
chore(pr)Служебные изменения PR
chore(pull)Служебные изменения при слиянии

Специальные коммиты

ТипГруппаОписание
chore(release): version x.x.x.xReleaseВыпуск релиза
Коммит с security в телеSecurityИсправление безопасности
Примечание

Таблица приведена в качестве справки. Актуальную конфигурацию смотрите в файле cliff.toml каждого проекта (сайт проекта git-cliff).


Рекомендации

  1. Описывайте изменения при каждом коммите — не откладывайте описание на потом
  2. Делайте атомарные коммиты — не накапливайте несвязанные изменения. Каждый коммит должен решать одну задачу (одна логическая единица работы)
  3. Пишите понятные описания — с точки зрения пользователя, не разработчика
  4. Не смешивайте типы изменений — например, изменение в отчете по остаткам и документа платежное поручение
  5. Используйте scope — для указания области (Бюджетирование, Администрирование, Интеграция, Казначейство)
  6. Указывайте номер задачи — для связи с системой управления задачами (не для методологии gitflow)
  7. Описание на русском языке — краткое и понятное

Подробная документация

Работа с хранилищем 1С

Работа с Git