Каким образом наиболее просто использовать 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
Комментариев нет:
Отправить комментарий