Ветки¶
Работа с ветками¶
Ветка — это версия рабочего дерева проекта. При создании нового проекта Система создает в вашем репозитории ветку по умолчанию, которая не может быть удалена. Настройки ветки по умолчанию могут быть сконфигурированы на уровне проекта, подгруппы, группы или инстанса.
По мере роста проекта команда создает больше веток, при этом желательно придерживаться шаблона именования веток. Каждая ветка представляет набор изменений, что позволяют разработчикам работать параллельно. Разработка в одной ветке не оказывает влияние на другую.
Ветки — основной элемент разработки в рамках проекта.
Создание ветки¶
Примечание
Выполняется пользователем минимум с проектной ролью Разработчик.
- Выберите Искать или перейти к... и найдите проект.
- Выберите Код > Ветки.
- Нажмите Новая ветка справа вверху.
- В поле Имя ветки введите имя ветки.
- В поле Создать из выберите базу для создания ветки: существующую ветку, существующий тег или SHA коммита.
- Нажмите Создать ветку.
Добавление ветки в пустой проект¶
Пустой проект не содержит веток, но можно добавить ее.
Примечание
Выполняется пользователем минимум с ролью Разработчик для этого проекта.
Примечание
Если роль пользователя не Сопровождающий или Владелец, чтобы выгружать коммит в основную ветку, необходимо выбрать настройки защиты Частично защищена или Не защищена.
- Выберите Искать или перейти к... и найдите проект.
- В разделе Репозиторий данного проекта пуст выберите тип добавляемого файла.
- В открывшейся Web IDE внесите в файл необходимые изменения и выберите Создать коммит.
- Введите сообщение, сопровождающее коммит, и нажмите Создать коммит.
- Система создает ветку по умолчанию и добавит в нее созданный файл.
Создание ветки из Обсуждения¶
Примечание
Выполняется пользователем минимум с проектной ролью Разработчик.
Можно создать связанную ветку прямо на странице Обсуждения. При этом имя ветки формируется в соответствии с заданным шаблоном (возможно использование переменных).
- Выберите Искать или перейти к... и найдите проект.
- Выберите План > Обсуждения и найдите обсуждение.
- Под описанием обсуждения найдите раскрывающееся меню Создать запрос на слияние и раскройте его.
- Выберите Создать ветку. Имя ветки по умолчанию будет сформировано на основе заданного шаблона для этого проекта. При необходимости можно указать другое имя ветки.
- Нажмите Создать ветку, чтобы создать ветку на основе основной ветки проекта.
Управление и защита веток¶
Система предлагает множество способов защиты веток. Эти способы обеспечивают контроль веток с момента их создания и до удаления:
- Для основной ветки проекта обеспечивается максимальный уровень защиты.
- Настройте защищенные ветки, чтобы ограничить круг лиц, имеющих право сливать с ними другие ветки или объединять защищенные ветки с другими.
- Настройте правила утверждения, в т. ч. касающиеся безопасности, обеспечивающие соответствие ветки определенным стандартам.
Просмотр всех веток¶
- Выберите Искать или перейти к... и найдите проект.
- Выберите Код > Ветки.
На данной странице можно выполнять следующие действия:
- Просматривать все ветки или фильтровать их.
- Создавать новые ветки.
- Сравнивать ветки.
- Удалять слитые ветки.
Просмотр защищенных веток¶
Ветки в репозитории могут защищаться несколькими способами:
- Ограничение круга лиц, допущенных к выгрузке информации в ветки.
- Ограничения лиц, допущенных к слиянию веток.
- Запрос получения одобрения на все изменения.
- Запрос на прохождение внешних тестов.
На странице Правила веток отображаются все ветки, для которых настроена защита, с указанием используемых способов защиты:
Примечание
Выполняется пользователем минимум с проектными правами Сопровождающий.
Чтобы перейти на страницу Правила веток:
- Выберите Искать или перейти к... и найдите проект.
- Выберите Настройки > Репозиторий.
- Раскройте раздел Правила веток, чтобы просмотреть все защищенные ветки.
Чтобы защитить новую ветку:
- Нажмите Добавить правило ветки.
- В открывшемся списке выберите Имя ветки или шаблон и укажите имя или шаблон ветки, для которой создаётся правило.
Чтобы получить более подробную информацию о методах защиты существующей ветки:
- Найдите ветку, о защите которой вы хотите получить информацию.
- Выберите Подробнее, чтобы получить более подробную информацию:
- О защите веток.
- О правилах одобрения.
- О статусе проверок.
Название ветки¶
Система рекомендует придерживаться правил формирования имен веток, чтобы обеспечить совместимость с другими инструментами. Система добавляет дополнительные требования к формированию имен веток и предлагает ряд преимуществ от использования тщательно структурированных названий.
Система рекомендует придерживаться этих правил для всех веток:
- Использование пробелов в названиях веток не допускается.
- Имена веток, состоящие из 40 шестнадцатеричных символов, запрещены, поскольку они похожи на хеш-суммы коммитов.
Другое программное обеспечение, например Docker, может накладывать на правила формирования имен веток дополнительные ограничения.
Для обеспечения наилучшей совместимости с другими пакетами используйте только:
- Числа.
- Дефисы (–).
- Подчеркивания (_).
- Буквы в нижнем регистре из стандартной таблицы кодировки ASCII.
Допускается использование прямого слеша (/) и эмоджи, но при этом не гарантируется совместимость с другим программным обеспечением.
Названия веток с особым форматированием предлагают ряд дополнительных преимуществ:
- Упорядочивание рабочего процесса слияния веток в результате добавления префикса с номером обсуждения к названию ветки.
- Автоматизация защиты веток с учетом их имен.
- Названия тестовых веток с префиксами выгрузки.
- Определение CI/CD-задачи для запуска слияния веток.
Настройка шаблона для формирования имен веток со страницы Обсуждения¶
По умолчанию в системе используется следующий шаблон для формирования имен веток на странице Обсуждения: %{id}-%{title}.
Примечание
Выполняется пользователем минимум с проектной ролью Сопровождающий.
Чтобы изменить шаблон по умолчанию:
- Выберите Искать или перейти к... и найдите проект.
- Выберите Настройки > Репозиторий.
- Разверните раздел Настройки ветки по умолчанию.
- Перейдите в поле Шаблон для имён веток и внесите необходимые изменения. Поддерживается использование следующих переменных:
- %{id}: идентификационный номер обсуждения.
- %{title}: название обсуждения, модифицированное для соответствия требованиям Системы в отношении формирования имен веток.
- Нажмите Сохранить изменения.
Префиксы названия имен веток с номерами обсуждений¶
Чтобы упростить создание запросов на слияние, начинайте имя ветки с номера обсуждения с последующим дефисом. Например, чтобы создать связь с Обсуждением №123, начинайте имя ветки с 123-.
Примечание
Обсуждение и ветка должны находиться в одном проекте.
Система использует номер обсуждения, чтобы импортировать данные в Запрос на слияние:
- Обсуждение маркируется как связанный с запросом на слияние.
- Обсуждение и запрос на слияние отображаются как связанные друг другом.
- Ветка связывается с обсуждением.
- Если в проекте настроено закрытие обсуждения по умолчанию, связанные с запросом на слияние обсуждения закрываются при его подтверждении.
- Обсуждения, этапы проекта и метки копируются в запрос на слияние.
Сравнение веток в репозитории¶
- Выберите Искать или перейти к... и найдите проект.
- Выберите Код > Сравнить ревизии.
-
В поле Источник найдите исходную ветку. При поиске сначала отображаются точные совпадения. В строке поиска также могут использоваться следующие операторы:
- ^ — указатель начала названия ветки: ^feat — возможный результат: feat/user-authentication.
- $ — указатель конца названия ветки: widget$ — возможный результат: feat/search-box-widget.
- * — любой символ: branch*cache* — возможный результат: fix/branch-search-cache-expiration.
Допускается комбинирование операторов:
^chore/\*migration$ matches chore/user-data-migration. -
В поле Цель выберите сравниваемую ветку. При поиске сначала отображаются точные совпадения.
- В разделе Показать изменения ниже выберите способ сравнения веток:
- Только входящие изменения из источника (по умолчанию) — отображаются различия от исходной ветки с последнего общего коммита в обе ветки. Не включаются несвязанные изменения, внесенные в сравниваемую ветку после создания исходной ветки. Для этого способа используется команда
git diff <from>...<to>. - Включить изменения в целевой ветке после создания источника — отображаются все отличия двух веток. Для этого способа используется команда
git diff <from> <to>.
- Только входящие изменения из источника (по умолчанию) — отображаются различия от исходной ветки с последнего общего коммита в обе ветки. Не включаются несвязанные изменения, внесенные в сравниваемую ветку после создания исходной ветки. Для этого способа используется команда
- Нажмите Сравнить, чтобы отобразить перечень коммитов и измененных файлов.
- При необходимости, чтобы поменять сравниваемые ветки местами, нажмите кнопку Поменять.
Удаление слитой ветки¶
Слитые ветки могут массово удаляться, если они соответствуют следующим критериям:
- они не являются защищенными;
- они влиты в основную ветвь проекта.
Примечание
Выполняется пользователем минимум с проектной ролью Разработчик.
- Выберите Искать или перейти к... и найдите проект.
- Выберите Код > Ветки.
- Нажмите Дополнительно в правом верхнем углу страницы.
- Выберите Удалить объединённые ветки.
- В открывшемся диалоговом окне введите контрольное слово, чтобы подтвердить удаление, а затем нажмите Удалить объединённые ветки.