Страницы

Поиск по вопросам

четверг, 11 октября 2018 г.

Как использовать Git для контроля версий в Unity3D?

Каким образом наиболее просто использовать Git при работе с Unity, учитывая, в частности, бинарный характер Unity-проектов? Опишите, пожалуйста, рабочий процесс, укажите, что стоит включить в .gitignore, какие настройки выбирать в Unity и/или проекте и что ещё нужно при этом учесть?
Примечание: я понимаю, что разработчики Unity рекомендуют пользоваться Asset Server, но, по ряду причин, я бы хотел использовать Git, то есть использовать Asset Server – для меня не вариант.
Перевод вопроса How to use Git for Unity source control? @PressingOnAlways


Ответ

Рекомендации ниже являются выдержкой из личного блога
Использование Git для 3D-игр
Примечание: Не так давно GitHub выпустил плагин для Git под названием Git LFS, позволяющий решить описанную проблему. Теперь вы можете легко и эффективно осуществлять контроль версий для объемных бинарных файлов!
Git прекрасно работает с 3D-играми, за исключением одного: сохранение версий больших (>5 MB) медиафайлов на протяжении длительного времени (при обновлении архивов версий) может быть проблематичным. Эту проблему мы решили в наших проектах фиксацией только тех бинарных файлов, которые считаются окончательными. Наши 3D-художники используют Dropbox для работы с WIP — и по вышеуказанной причине, и потому, что это намного быстрее и проще (не многие художники горят желанием работать с Git!).
Процедура работы с Git
Конкретная процедура работы с Git в большей степени зависит от ваших собственных предпочтений, а также опыта и традиций вашей командной работы. Тем не менее, я бы настоятельно рекомендовал методологию с «говорящим» названием «Git Flow» в оригинальной версии автора
Я не буду чересчур углубляться в суть методологии, поскольку автор прекрасно её описал – к тому же, без лишней «воды», поэтому в ней нетрудно разобраться. Я уже какое-то время использую этот метод для своей команды и на данный момент это лучшая методология из всех нами испробованных.
Клиентское приложение Git GUI
Это, на самом деле, из области личных предпочтений, поскольку в том, что касается графического интерфейса для Git, возможность выбора есть, включая выбор того, использовать ли графический интерфейс вообще. Спешу предложить бесплатное приложение SourceTree, поскольку оно отлично сочетается с расширением Git Flow. В руководстве по SourceTree вы можете прочесть о реализации методологии Git Flow в рамках этого приложения.
Что игнорировать в Unity3D при работе с Git
# =============== # # Unity generated # # =============== # Temp/ Library/
# ===================================== # # Visual Studio / MonoDevelop generated # # ===================================== # ExportedObj/ obj/ *.svd *.userprefs /*.csproj *.pidb *.suo /*.sln *.user *.unityproj *.booproj
# ============ # # OS generated # # ============ # .DS_Store .DS_Store? ._* .Spotlight-V100 .Trashes ehthumbs.db Thumbs.db
Настройки Unity3D для работы с Git
Для версии Unity3D v4.3 и выше:
(Для v4.5 и выше пропустите этот шаг) Выберите параметр External в Unity → Preferences → Packages → Repository Используйте Visible Meta Files в Edit → Project Settings → Editor → Version Control Mode Используйте Force Text в Edit → Project Settings → Editor → Asset Serialization Mode Сохраните сцену и проект из меню File
Дополнительно
Один из отрицательных аспектов использования Unity3D и Git в том, что Git не заботится о пустых папках (а Unity создает для них мета–файлы). Как результат, могут возникнуть не нужные конфликты.
Для решения, добавьте специальный обработчик в папку /.git/hooks/ репозитория проекта. Благодаря обработчику после каждого обновления проекта (pull/merge) Git будет проверять удаленные файлы, а также пустые папки.
Перевод ответа How to use Git for Unity source control? @S.Richmond

Комментариев нет:

Отправить комментарий