• Игры
  • Отрасль
  • Ресурсы
  • Сообщество
  • Обучение
  • Поддержка
Услуги разработчиков
Движок Unity
Создавайте 2D и 3D игры для любой платформы
ЗагрузитьТарифы и цены
Монетизация
Встроенная покупка (IAP)
Откройте и управляйте IAP в разных магазинах
Mediation
Максимизируйте доход и оптимизируйте монетизацию
Качество рекламы
Защитите пользовательский опыт вашего приложения
Tapjoy
Создавайте долгосрочную лояльность пользователей
Все продукты монетизации
Привлечение пользователей
Привлечение пользователей
Будьте замечены и привлекайте мобильных пользователей
Unity Vector AI
Соединяйте игроков с подходящими играми
Aura - реклама на устройстве
Достигайте пользователей на устройстве в пиковые моменты вовлеченности
Все продукты для роста
Примеры использования
3D сотрудничество
Создавайте и просматривайте 3D проекты в реальном времени
Иммерсивное обучение
Обучение в иммерсивных средах
Пользовательские опыты
Создавайте интерактивные 3D опыты
Все отраслевые решения
Отрасли
Производство
Достигнуть операционного совершенства
Торговля
Преобразовать опыт в магазине в онлайн-опыт
Автомобильная отрасль
Повысить инновации и опыт в автомобиле
Все отрасли
Техническая библиотека
Документация
Официальные руководства пользователя и ссылки на API
Инструменты для разработчиков
Версии релизов и трекер проблем
План развития
Обзор предстоящих функций
Глоссарий
Библиотека технических терминов
Дополнительная информация
Истории успеха
Истории успеха из реальной жизни
Руководства по лучшим практикам
Советы и хитрости от экспертов
Все ресурсы
Что нового
Блог
Обновления, информация и технические советы
Новости
Новости, истории и пресс-центр
Сообщество
Обсуждения
Обсуждать, решать проблемы и соединяться
События
Глобальные и местные события
Истории сообщества
Made with Unity
Показ Unity-креаторов
Прямые трансляции
Присоединяйтесь к разработчикам, креаторам и инсайдерам
Награды Unity
Празднование Unity-креаторов по всему миру
Для каждого уровня
Unity Learn
Освойте навыки Unity бесплатно
Профессиональное обучение
Повышайте уровень своей команды с тренерами Unity
Не использовали Unity раньше
С чего начать
Приступите к обучению
Основные пути Unity
Не использовали Unity раньше? Начните свое путешествие
Практические руководства
Практические советы и лучшие практики
Образование
Для студентов
Запустите свою карьеру
Для преподавателей
Улучшите свое преподавание
Лицензия Education Grant
Принесите мощь Unity в ваше учебное заведение
Программы сертификации
Докажите свое мастерство в Unity
Варианты поддержки
Получить помощь
Помогаем вам добиться успеха с Unity
Планы успеха
Достигайте своих целей быстрее с помощью экспертов
FAQ
Ответы на часто задаваемые вопросы
Связаться с нами
Свяжитесь с нашей командой
Тарифы и цены
Язык
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
Соцсети
Валюта
Купить
  • Продукты
  • Unity Ads
  • Подписка
  • Unity Asset Store
  • Торговые посредники
Образование
  • Студенты
  • Преподаватели
  • Образовательные учреждения
  • Сертификация
  • Learn
  • Программа развития навыков
Загрузить
  • Unity Hub
  • Архив загрузок
  • Программа бета-тестирования
Unity Labs
  • Лаборатории
  • Публикации
Ресурсы
  • Платформа обучения
  • Сообщество
  • Документация
  • Unity QA
  • FAQ
  • Статус услуг
  • Истории успеха
  • Made with Unity
Unity
  • Наша компания
  • Новостная рассылка
  • Блог
  • События
  • Вакансии
  • Справка
  • Пресса
  • Партнеры
  • Инвесторы
  • Партнеры
  • Безопасность
  • Отдел Social Impact
  • Инклюзия и разнообразие
  • Связаться с нами
© Unity Technologies, 2025
  • Правовая информация
  • Политика конфиденциальности
  • Cookie-файлы
  • Использование персональных данных

Unity, логотипы Unity и другие торговые знаки Unity являются зарегистрированными торговыми знаками компании Unity Technologies или ее партнеров в США и других странах (подробнее здесь). Остальные наименования и бренды являются торговыми знаками соответствующих владельцев.

Hero background image

Как реализовать рабочий процесс ветки задач

Всегда будьте готовы к развертыванию. Рабочий процесс ветки задач использует принципы DevOps, чтобы помочь командам достичь скорости через непрерывный поток высококачественных изменений.
Найдите больше лучших практик
Список решений
Найдите больше лучших практик
Список решений
  • Обзор
  • Преимущества
  • Ключевые шаги
  • Лучшие варианты
  • FAQ
Список решений
Эта веб-страница была переведена с помощью машинного перевода для вашего удобства. Мы не можем гарантировать точность или надежность переведенного контента. Если у вас есть вопросы о точности переведенного контента, обращайтесь к официальной английской версии веб-страницы.
Нажмите здесь.
Изображение «Ветвь задачи»

Что такое рабочий процесс ветки задач?

Шаблон прост: Вы создаете новую ветку для работы над каждой новой задачей в вашем трекере проблем. Ветки задач лучше всего подходят для работы с Unity Version Control, потому что она может легко обрабатывать тысячи веток. Этот рабочий процесс не является обязательным, и в конечном итоге вы должны оценить, какой рабочий процесс лучше всего подходит для вашей организации.

Основные преимущества

Параллельная разработка

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

Содержимое всегда под контролем

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

Держите основную ветку чистой

Организация основной ветки является одной из целей метода ветка-за-задачу. Тщательный контроль всего, что попадает в основную ветку, означает, что нет простого способа случайно сломать сборку, поскольку новые ошибки изолированы в ветке задач.

Ключевые шаги рабочего процесса ветки задач

В духе DevOps этот рабочий процесс может сократить время цикла задач и как можно быстрее вывести новый контент в производство. Корневые развертывания программного обеспечения в вашей повседневной практике.

Ключевые шаги рабочего процесса ветки задач

  • Задача и ветка задач
  • Разработка
  • Обзор
  • Подтвердить
  • Автоматизировать тестирование и слияние
  • Развертывание
Изображение «Ветвь задачи»

Задача и ветка задач

Процесс начинается с задачи в вашей системе отслеживания проблем или управления проектами: Jira, Bugzilla, Mantis, OnTime или ваше собственное внутреннее решение. Ключевое здесь в том, что все, что вы делаете, должно иметь связанную задачу. Не имеет значения, является ли это частью новой функции или исправлением ошибки – создайте для этого задачу.

Затем вы создаете ветку для этой задачи.

Мы рекомендуем простую конвенцию именования веток: Префикс ("задача" в примере), за которым следует номер задачи в системе отслеживания проблем. Это помогает вам сохранять полную прослеживаемость изменений.

Изображение «Ветвь задачи»

Разработка

Работайте над веткой задач и делайте столько коммитов, сколько необходимо. Объясните каждый шаг в комментариях, чтобы обеспечить ясность для любого рецензента.

Когда задача выполнена, установите атрибут "статус" на ветке как "решено".

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

Изображение «Ветвь задачи»

Обзор

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

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

Изображение «Ветвь задачи»

Подтвердить

Валидация является необязательным шагом.

Некоторые команды будут «валидировать» задачу – другой член команды проведет короткое исследовательское тестирование, чтобы убедиться, что новая функция или изменение имеет смысл. Они не ищут ошибки (автоматизированные тесты занимаются этим), а рассматривают изменение с точки зрения клиента. Статус может быть установлен на «валидирован» в атрибуте.

Изображение «Ветвь задачи»

Автоматизировать тестирование и слияние

Настройте вашу систему непрерывной интеграции (CI) для мониторинга всех веток, у которых установлен данный атрибут. Ветка будет рассматриваться системой CI только тогда, когда она достигнет заданного статуса (в данном случае, «валидирован»).

После того как задача будет проверена/валидирована, ветка задачи автоматически тестируется перед слиянием с основной.

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

Изображение «Ветвь задачи»

Развертывание

Если тесты проходят, слияние фиксируется, и ветка теперь готова к доставке. Обратите внимание, что статус теперь установлен на «слито».

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

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

Лучшие варианты

Лучшие варианты

  • Настройка непрерывной интеграции
  • Лучшие практики именования веток
  • Держите ветки задач короткими
  • Рабочий процесс и культура
  • Держите ветки задач независимыми
  • Учитывайте мнение рецензентов
  • Завершенные задачи должны быть готовыми к развертыванию
  • Переключатели функций
  • Использование переключателей функций
Изображение «Ветвь задачи»

Настройка непрерывной интеграции

С помощью Unity Version Control шаг автоматического тестирования и слияния можно настроить с использованием плагина для вашего выбранного инструмента CI, такого как Jenkins, Bamboo или Unity Cloud Build.

Этот шаг также можно организовать с помощью функции mergebot Unity Version Control. Mergebot может объединять ветки и запускать сборку, чтобы убедиться, что все работает. Слияния подтверждаются только в том случае, если сборка хорошая, что позволяет избежать сломанных сборок.

Изображение «Ветвь задачи»

Лучшие практики именования веток

Мы предпочитаем придерживаться следующей схемы именования: префикс + номер задачи. Например, ветки могут называться task1213, task1209 и task1221. Префикс — это «task», а номер представляет собой фактический номер задачи в связанном трекере проблем.

Скриншот также показывает описание для каждой ветки вместе с номером, так как проводник веток получает номер из трекера проблем. Вы также можете увидеть описание ветки, выбрав «отобразить информацию о задаче ветки».

Держите ветки задач короткими

Правила Scrum гласят, что задачи не должны длиться более 16 часов. Эта практика помогает контролировать сроки проекта.

Ветки задач должны закрываться быстро. В идеале у вас должно быть много небольших задач, которые вы можете закрыть всего за несколько часов. Эта структура помогает поддерживать ритм вашего проекта и облегчает непрерывное развертывание. Более крупная задача, которая длится неделю, например, останавливает цикл.

Одно красное знамя, о котором стоит помнить: Не создавайте задачи "рубленого мяса". Если вам нужно разбить задачу на более мелкие части, убедитесь, что задача все еще имеет смысл в изоляции и может быть развернута независимо.

Изображение «Ветвь задачи»

Рабочий процесс и культура

Рабочие процессы веток задач могут быть успешными только при поддержке всей команды.

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

Изображение «Ветвь задачи»

Держите ветки задач независимыми

Спросите себя (или своих товарищей по команде): Вам действительно нужен код, который вы только что закончили в задаче 1213, чтобы начать задачу 1209?

Задачи, как правило, гораздо более независимы, чем вы могли бы подумать. Да, они могут быть на одну и ту же тему, но вам не нужно касаться точно того же кода. Вы можете просто добавить что-то новое и довериться слиянию, чтобы оно выполнило свою работу.

Предположим, что 1213 и 1209 в приведенном выше примере были исправлениями ошибок, а не задачами. Вы не хотите, чтобы одно зависело от другого. Вы хотите, чтобы они попали в основную ветку и были выпущены как можно быстрее. Даже если они касаются одного и того же кода, это разные исправления.

Смотрите продвинутые техники
Изображение «Ветвь задачи»

Учитывайте мнение рецензентов

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

Оставление деталей в комментариях к вашему внесению изменений поможет рецензенту, так как ему не нужно будет сравнивать всю ветку. Вместо этого они будут сравнивать изменения по каждому набору изменений. И они будут следовать заранее записанному объяснению, которое вы сделали, чтобы прояснить каждый этап задачи. Они не окажутся перед смелым списком из более чем 100 измененных файлов. Вместо этого они будут двигаться шаг за шагом.

Изучите подробнее
Изображение «Ветвь задачи»

Завершенные задачи должны быть готовыми к развертыванию

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

Это небольшая цена за преимущества автоматизации. Команда должна согласовать определение "завершено", что означает "готово к производству". Взамен вы можете наслаждаться спокойствием, зная, что перенос вашей задачи в производство прост, полностью автоматизирован и не приведет к экстренной ситуации в 2:00 ночи.

Переключатели функций

Что такое переключатели функций? Они критически важны для непрерывного развертывания. Эта техника разработки программного обеспечения позволяет тестировать функции до их завершения и готовности к выпуску.

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

Изображение «Ветвь задачи»

Использование переключателей функций

Давайте рассмотрим пример. У вас есть большая функция, разделенная на семь частей, которые будут преобразованы в задачи и реализованы с помощью веток задач. Как возможно развернуть Часть 4, если ничего другого не готово?

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

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

Больше полезных руководств

Изображение «Ветвь задачи»

Лучшие практики для организации вашего проекта Unity

Подготовьте свою команду к эффективной разработке игр с помощью этих полезных советов по установке стандартов для ваших проектов Unity.

Узнайте, что делать
Изображение «Ветвь задачи»

Лучшие практики для контроля версий

Узнайте о лучших практиках, которые помогут вам максимально использовать любую систему контроля версий, которую вы выберете.

Узнать больше
Изображение «Ветвь задачи»
Хотите узнать больше?

Если это было полезно, ознакомьтесь с другим ресурсом о лучших практиках организации ваших проектов.

Читать нашу бесплатную электронную книгу
Список решений

Ответы на часто задаваемые вопросы

Какие части, описанные здесь, включены в контроль версий Unity?

+

С какими системами CI интегрируется Plastic?

+

Могу ли я подключить свою собственную CI?

+

Мне нужна система CI и трекер задач?

+

Обязательны ли ветки задач в Unity Version Control?

+

Мне нужна задача в Jira для каждой задачи?

+

Что если мои новые функции слишком велики для одной задачи?

+