![Hero background image](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2F6cb29b5bc09e0f2d1a78a456b4f664eb44342bce-1920x1080.jpg&w=3840&q=100)
Системы контроля версий (СКВ) позволяют командам создавать резервные копии исходного кода своих проектов и архивировать его. Это упрощает проверку и внесение изменений в репозиторий или восстановление предыдущих версий в случае ошибок, нарушающих работу сборки.
Контроль версий — это системный процесс отслеживания и контроля обновлений исходного кода и ассетов. Системы контроля версий — это базовый компонент эффективных рабочих процессов, который служит единым источником достоверной информации для программистов, художников и других сотрудников и позволяет всем вносить свой вклад в кодовую базу независимо от других. Эти системы также выполняют защитную функцию, давая возможность отменить обновление кода, если во время разработки в код была внесена критическая ошибка.
Системы контроля версий — это основа методологии DevOps, позволяющая командам вести быструю и эффективную совместную разработку и развивать исходный код проекта.
Благодаря доступу к полной истории проекта и возможности отменять изменения, вызывающие ошибки, системы контроля версий упрощают отслеживание ошибок и упрощают восстановление ранее удаленных функций.
![Централизованные системы контроля версий](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2F12b9d14ad3830e33d6ee6632c9a2fc3ee2da7978-1920x1080.jpg&w=3840&q=75)
Создание нового репозитория в вашей системе контроля версий открывает основную ветку: Это называется главной веткой или мастером магистрали. Стволовая ветвь — это место, где основная база кода входит в конвейер, где она затем компилируется и развертывается для конечного пользователя.
Рассмотрим, что представляют собой ветви. Ветвление — это процесс создания веток кода из главной ветви. Это позволяет разработчикам вносить свои изменения в код, не отправляя их основную базу. Используя ветви, разработчикам не нужно хранить полную историю файлов на одном сервере. Вместо этого они могут вести полную историю изменений кода с течением времени. Затем система контроля версий может объединить эти отдельные ветви обратно в главную ветвь. Если разработчик не готов к объединению, он может передавать свои изменения в отдельную ветвь, а затем по мере готовности объединить ее с главной ветвью.
Продуманная стратегия ветвления важна для предотвращения конфликтов в коде и ошибок в сборках. К счастью, эффективные системы контроля версий позволяют командам легко синхронизироваться с главной ветвью и устранять любые потенциальные конфликты в коде — даже после его отправки в главную ветвь интеграции.
Распределенные системы контроля версий позволяют добавлять код, создавать ветвления и объединять код без подключения к главному серверу. Каждый участник команды работает с клонированным репозиторием, который хранится в облаке. Основное преимущество таких систем состоит в том, что участники команды могут быстро работать независимо, не волнуясь о медленном сетевом подключении или VPN. Можно даже работать с проектом в автономном режиме, хотя для отправки или извлечения обновлений все же требуется подключение к Интернету.
Если вам потребуется скачать всю историю проекта (в частности, крупного проекта с большой историей изменений), в распределенных системах контроля версий это может занять много времени. Студиям, работающим с большими двоичными файлами, следует тщательно отслеживать использование хранилища, так как эти ресурсы могут быстро занять все доступное место.
Студиям, которым необходимы гибкость и возможность повышения производительности, следует рассмотреть использование распределенной системы контроля версий.
![Распределенная система контроля версий](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2F1e2f049c087a0e525585f6108abdaaaba0befd9b-1920x1080.jpg&w=3840&q=75)
Централизованные системы контроля версий используют рабочий процесс на основе чекина/выгрузки для подключения к главному серверу. Все изменения или обновления исходного кода автоматически сохраняются в репозитории как новая версия. Централизованные системы контроля версий поддерживают мощные возможности ветвления и слияния, не требующие клонирования репозитория на несколько компьютеров. В этом смысле она более безопасна.
Для работы централизованным системам контроля версий требуется подключение к сети. Так как команды привязаны к одной версии проекта, которая хранится на одном сервере, сбой сервиса может существенно замедлить работу. Другой недостаток централизованных систем контроля версий — их плохая масштабируемость. Чем больше разработчиков работают над проектом, тем меньше возможностей выгружать изменения в стабильную среду, что может вызвать такие проблемы, как конфликты при слиянии.
Если вам нужна система контроля версий, которую легко настроить и использовать, то вы можете выбрать централизованную систему.
Локальные системы контроля версий — это самый простой вид подобных систем. Они используются в основном индивидуальными разработчиками, а не командами. В локальной системе контроля версий все данные проекта хранятся на одном компьютере, а изменения файлов проекта хранятся в виде патчей. Каждый патч содержит только обновления, реализованные с момента выпуска предыдущего патча. Если с определенной версией проекта возникает проблема, необходимо изучить весь набор патчей, чтобы понять, как файлы проекта выглядели в определенный момент времени, чтобы выявить и устранить ошибку.
Так как локальные системы контроля версий привязаны к одному компьютеру, они по своей природе менее гибкие, чем распределенные и централизованные системы. Совместная работа в таких системах затруднена. При нарушении целостности базы данных будет сложно (если вообще возможно) восстановить утерянную информацию.
В целом можно начать с локальной системы контроля версий, но по мере расширения команды, даже до двух человек, лучше перейти на распределенную или централизованную систему.
Легко отслеживайте изменения и объединяйте их в проекте.
Сравнивайте файлы и определяйте отличия между ними.
Легко устраняйте неполадки благодаря полному архиву изменений, зарегистрированных в СКВ.
Центральный репозиторий обеспечивает бесперебойную совместную работу, не влияя на индивидуальную производительность или изменения кода.
Освободите место и время, удобно обмениваясь файлами с разработчиками и заинтересованными лицами без необходимости постоянно сохранять копии изменений кода.
Распределенная разработка позволяет командам работать где угодно и когда им удобно.
![Два человека, владеющие файлами DevOps и Agile](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2F0a0da04de7e449063bdb06546104af2f3170b304-1024x574.jpg&w=3840&q=100)
У Agile и DevOps одинаковые цели — обеспечивать преимущества для клиентов за счет регулярного выпуска, — но немного разные подходы. Узнайте, как можно одновременно использовать обе эти методики.
![Рука, держащая лампочку](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2F64d34bd4644d083e0c42ff2097afa98b584fdba2-1024x574.jpg&w=3840&q=100)
Каждая игровая студия стремится ускорить разработку и снизить потребность в сверхурочной работе. DevOps — лучший способ достичь этих целей. Для начала узнайте о ключевых принципах, лежащих в основе методологии DevOps.
![Рука, держащая гантель](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2Ff39727a400963239df3682c7671883c984853e13-1024x574.jpg&w=3840&q=100)
Внедрение методов DevOps может упростить процесс разработки и повысить удовлетворенность сотрудников и пользователей. Узнайте, как вам может пригодиться DevOps.
![Электронная книга о системах контроля версий](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2Fb53f49bee0c20c2d753c3fb4b8be6b25701c0126-1440x440.png&w=3840&q=75)
Централизованная или распределенная система? У каждого подхода есть свои плюсы и минусы. Из этой бесплатной электронной книги вы узнаете, какой тип контроля версий лучше всего подойдет вашей команде.
![Пластиковая выноска SCM](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2F3df3bc7cb58ac4ae322887b0b24a5c3d11466de7-1230x600.jpg&w=3840&q=75)
Используйте системы контроля версий Unity для распределенной и централизованной работы. Легко управляйте большими двоичными файлами в процессах, основанных как на файлах, так и на наборах изменений. Храните исходный код и ассеты с отслеживанием всех изменений в защищенной системе контроля версий с поддержкой любого движка.