При разработке нежелательно, чтобы экспериментальные изменения, исправления или незавершённые идеи сразу же влияли на весь проект. Создание нескольких веток позволяет вам и вашим товарищам по команде работать вместе или независимо, не замедляя общий прогресс проекта.
Ветки — это параллельные версии проекта, которые развиваются с разной скоростью и для разных целей.
В проекте может потребоваться одновременная поддержка нескольких видов задач. Создание веток и управление ими делают это возможным, позволяя каждому рабочему потоку идти своим ходом, и объединяя их только тогда, когда все будет готово. Существуют разные стратегии ветвления, которые команды используют по разным причинам, одна из самых распространённых такая:
Основная ветка: стабильная, долгосрочная ветка, служащая основой проекта.
Ветка версии: ветки, в которых выполняются тесты и подготовка к определённой версии.
Функциональная ветка: специализированные ветки, в которых ведётся работа над отдельными функциями до интеграции их в ветку версии или в
основную.Экспериментальная ветка: ветки, в которых можно безопасно проводить исследования, не затрагивая весь проект или другие ветки.
Основная ветка
Ветка main (основная) — самая стабильная версия проекта, общий и надёжный базовый вариант, который берётся за основу всех остальных веток и в который собираются потом все сделанные в них изменения.
Основная ветка используется для:
интеграции в неё других веток, когда задача в них выполнена и протестирована;
доработки с целью создания стабильных сборок для игрового тестирования.
Создайте ветку dev, которая копирует ветку main. Ветка dev — это место, где можно проверять стабильность работы перед объединением с основной.
Ветка версии
Ветки версий — это ветки, в которых работа выполняется в закрытой среде на время подготовки сборки к тестированию или выпуску. Ветка версии — отличный способ организовать работу вокруг определённой цели выпуска или этапа графика.
Ветка выпуска используется для:
изоляции функций для выполнения определённых работ;
исправления ошибок и улучшения качества;
предотвращения внезапных изменений в последнюю минуту и расползания объёма работ.
Выделение работ над версией в отдельную ветку особенно ценно на поздних этапах разработки, потому что:
можно продолжать экспериментальную работу, не нарушая других задач команды;
изменения не становятся постоянными для всего проекта, что может привести к задержкам;
команда всегда знает, что войдёт в версию.
Функциональные ветки
Функциональная ветка используется в процессе разработки для работы над отдельными функциями без риска для веток версий или основной ветки. Функциональных веток может быть много, в каждой из которых участники команды свободно вносят изменения, не влияя на другие ветки проекта.
Функциональные ветки создаются для работы над конкретной задачей, например:
добавление новой системы игрового процесса;
создание последовательности ив интерфейсе;
добавление новой секции карты.
Функциональные ветки полезны для:
группировки работ над функциями и проверки их действия;
переключения между функциями в разработке и другими задачами без потери прогресса и без захламления активного рабочего пространства разрозненными изменениями.
Если вы решите пойти в другом направлении, ветвь функции можно легко забросить, не затрагивая никакие другие.
Функциональные ветки легко можно забросить, не затрагивая работу другого участника команды или текущую разработку.
Экспериментальные ветки
Экспериментальная ветка — это место, где можно безопасно исследовать новые идеи, не прерывая работу других членов команды. Изучив идею, вы можете сравнить результаты и решить, что оставить. Если идея сработает, вы сможете объединить изменения. Если ничего не получится, ветку можно удалить или забросить.
Экспериментальные ветки используются для следующего:
прототипирование идей игрового процесса;
попытки оптимизации производительности;
исследование альтернативных художественных концепций или планировки уровней.