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

Ветки

Работа с ветками

Ветка — это версии рабочего дерева проекта. При создании нового проекта Система создает в вашем репозитории ветку по умолчанию, которая не может быть удалена. Настройки ветки по умолчанию могут быть сконфигурированы на уровне проекта, подгруппы, группы или инстанса.

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

Ветки — основной элемент разработки в рамках проекта.

Создание ветки

Примечание

Выполняется пользователем минимум с проектной ролью Разработчик.

  1. Выберите Поиск и переход... слева в меню и найдите проект.
  2. Выберите Код > Ветки.
  3. Нажмите Новая ветка справа вверху.
  4. В поле Имя ветки введите имя ветки.
  5. В поле Создать из выберите базу для создания ветки: существующую ветку, существующий тег или SHA коммита.
  6. Нажмите Создать ветку.

Добавление ветки в пустой проект

Пустой проект не содержит веток, но можно добавить ее.

Примечание

Выполняется пользователем минимум с ролью Разработчик для этого проекта.

Примечание

Если роль пользователя не Сопровождающий или Владелец, чтобы выгружать коммит в основную ветку, необходимо выбрать настройки защиты Частично защищена или Не защищена.

  1. Выберите Поиск и переход... слева в меню и найдите проект.
  2. В разделе Репозиторий данного проекта пуст выберите тип добавляемого файла.
  3. В открывшейся Web IDE внесите в файл необходимые изменения и выберите Создать коммит.
  4. Введите сообщение, сопровождающее коммит, и нажмите Создать коммит.
  5. Система создает ветку по умолчанию и добавит в нее созданный файл.

Создание ветки из Вопроса

Примечание

Выполняется пользователем минимум с проектной ролью Разработчик.

Можно создать связанную ветку прямо на странице Вопросы. При этом имя ветки формируется в соответствии с заданным шаблоном (возможно использование переменных).

Примечание

Выполняется пользователем минимум с проектной ролью Разработчик.

  1. Выберите Поиск и переход... слева в меню и найдите проект.
  2. Выберите Планирование > Вопросы и найдите вопрос.
  3. Под описанием вопроса найдите раскрывающееся меню Создать запрос на слияние и раскройте его.
  4. Выберите Создать ветку. Имя ветки по умолчанию будет сформировано на основе заданного шаблона для этого проекта. При необходимости можно указать другое имя ветки.
  5. Нажмите Создать ветку, чтобы создать ветку на основе основной ветки проекта.

Управление и защита веток

Система предлагает множество способов защиты веток. Эти способы обеспечивают контроль веток с момента их создания и до удаления:

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

Просмотр всех веток

  1. Выберите Поиск и переход... слева в меню и найдите проект.
  2. Выберите Код > Ветки.

На данной странице можно выполнять следующие действия:

  • Просматривать все ветки или фильтровать их.
  • Создавать новые ветки.
  • Сравнивать ветки.
  • Удалять слитые ветки.

Просмотр защищенных веток

Ветки в репозитории могут защищаться несколькими способами:

  • Ограничение круга лиц, допущенных к выгрузке информации в ветки.
  • Ограничения лиц, допущенных к слиянию веток.
  • Запрос получения одобрения на все изменения.
  • Запрос на прохождение внешних тестов.

На странице Обзор правил веток отображаются все ветки, для которых настроена защита, с указанием используемых способов защиты:

Примечание

Выполняется пользователем минимум с проектными правами Сопровождающий.

Чтобы перейти на страницу Обзор правил веток:

  1. Выберите Поиск и переход... слева в меню и найдите проект.
  2. Выберите Настройки > Репозиторий.
  3. Раскройте раздел Правила ветки, чтобы просмотреть все защищенные ветки.

Чтобы защитить новую ветку:

  1. Выберите Добавить правило ветки.
  2. Выберите Создать защищенную ветку.

Чтобы получить более подробную информацию о методах защиты существующей ветки:

  1. Найдите ветку, о защите которой вы хотите получить информацию.
  2. Выберите Посмотреть детали, чтобы получить более подробную информацию:
    • О защите веток.
    • О правилах одобрения.
    • О статусе проверок.

Название ветки

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

Система рекомендует придерживаться этих правил для всех веток:

  • Использование пробелов в названиях веток не допускается.
  • Имена веток, состоящие из 40 шестнадцатеричных символов, запрещены, поскольку они похоже на хеш-суммы коммитов.

Другое программное обеспечение, например Docker, может накладывать на правила формирования имен веток дополнительные ограничения.

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

  • Числа.
  • Дефисы (–).
  • Подчеркивания (_).
  • Буквы в нижнем регистре из стандартной таблицы кодировки ASCII.

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

Названия веток с особым форматирование предлагают ряд дополнительных преимуществ:

  • Упорядочивание рабочего процесса слияния веток в результате добавления префикса с номером вопроса к названию ветки.
  • Автоматизация защиты веток с учетом их имен.
  • Названия тестовых веток с префиксами выгрузки.
  • Определение CI/CD-задачи для запуска слияния веток.

Настройка шаблона для формирования имен веток со страницы Вопросы

По умолчанию в системе используется следующий шаблон для формирования имен веток на странице Issue: %{id}-%{title}.

Примечание

Выполняется пользователем минимум с проектной ролью Сопровождающий.

Чтобы изменить шаблон по умолчанию:

  1. Выберите Поиск и переход... слева в меню и найдите проект.
  2. Выберите Настройки > Репозиторий.
  3. Разверните раздел Ветка по умолчанию.
  4. Перейдите в раздел Шаблонное имя ветки и внесите необходимые изменения. Поддерживается использование следующих переменных:
    • %{id}: идентификационный номер Issue.
    • %{title}: название Issue, модифицированное для соответствия требованиям Системы в отношении формирования имен веток.
  5. Нажмите Сохранить изменения.

Префиксы названия имен веток с номерами вопросов

Чтобы упростить создание запросов на слияние, начинайте имя ветки с номера вопроса с последующим дефисом. Например, чтобы создать связь с Вопросом №123, начинайте имя ветки с 123-.

Примечание

Вопрос и ветка должны находиться в одном проекте.

Система использует номер вопроса, чтобы импортировать данные в Запрос на слияние:

  • Вопрос маркируется как связанный с запросом на слияние.
  • Вопрос и запрос на слияние отображаются как связанные друг другом.
  • Ветка связывается с вопросом.
  • Если в проекте настроено закрытие вопроса по умолчанию, связанные с запросом на слияние вопросы закрываются при его подтверждении.
  • Вопросы, этапы проекта и метки копируются в запрос на слияние.

Сравнение веток в репозитории

  1. Выберите Поиск и переход... слева в меню и найдите проект.
  2. Выберите Код > Сравнение ревизий.
  3. В поле Источник найдите исходную ветку. При поиске сначала отображаются точные совпадения. В строке поиска также могут использоваться следующие операторы:

    • ^ — указатель начала названия ветки: ^feat — возможный результат: feat/user-authentication.
    • $ — указатель конца названия ветки: widget$ — возможный результат: feat/search-box-widget.
    • * — любой символ: branch*cache* — возможный результат: fix/branch-search-cache-expiration.

    Допускается комбинирование операторов:

    ^chore/\*migration$ matches chore/user-data-migration.
    
  4. В поле Цель выберите сравниваемую ветку. При поиске сначала отображаются точные совпадения.

  5. В разделе Показать изменения ниже выберите способ сравнения веток:
    • Только входящие изменения из источника (по умолчанию) — отображаются различия от исходной ветки с последнего общего коммита в обе ветки. Не включаются несвязанные изменения, внесенные в сравниваемую ветку после создания исходной ветки. Для этого способа используется команда git diff <from>...<to>.
    • Включить изменения в цель с момента создания источника — отображаются все отличия двух веток. Для этого способа используется команда git diff <from> <to>.
  6. Нажмите Сравнить, чтобы отобразить перечень коммитов и измененных файлов.
  7. При необходимости, чтобы поменять сравниваемые ветки местами, нажмите иконку с двумя противоположно направленными стрелками Поменять ревизии местами.

Удаление слитой ветки

Слитые ветки могут массово удаляться, если они соответствуют следующим критериям:

  • они не являются защищенными;
  • они влиты в основную ветвь проекта.

Примечание

Выполняется пользователем минимум с проектной ролью Разработчик.

  1. Выберите Поиск и переход... слева в меню и найдите проект.
  2. Выберите Код > Ветки.
  3. Откройте раскрывающееся меню в правом верхнем углу страницы.
  4. Нажмите Удалить слитые ветки.
  5. В открывшемся диалоговом окне введите контрольное слово, чтобы подтвердить удаление, а затем нажмите Удалить слитые ветки.