Какие файлы проекта Unreal Engine 4 можно игнорировать в системе контроля версий?

30

Я хочу поставить проект Unreal Engine 4 под контроль исходного кода с помощью git. (Я знаю, что редактор имеет поддержку Perforce и Subversion, но мне все равно.)

Какие папки и файлы я включаю в репозиторий и какие можно игнорировать?

Как я вижу это, необходимо следующее: Config, Content, Source, *.sln,*.uproject

То , что я могу игнорировать: Binaries, DerivedDataCache, Intermediate, Saved, *.suo, *.sdf,*.opensdf

Это верно?

rioki
источник
2
Если есть .sln, обычно есть файл .vXX.suo (который обычно невидим), который вы можете игнорировать, поскольку он содержит специфичные для пользователя параметры.
Джош
2
Github поддерживает список файлов игнорирования для различных проектов. Там нет записи для Unreal4 еще. Если вы найдете идеальный список, возможно, вам следует отправить запрос на добавление, чтобы добавить его туда.
Сет Баттин
Я уже проигнорировал временные файлы VS, но спасибо за то, что вы сделали это очевидным для всех. Я изменил вопрос, чтобы отразить это.
Риоки
@rioki Какое у вас впечатление от работы с git? Вчера был первый раз, когда я работал с UE и сэкономил на простом уровне 500 МБ свободного места на жестком диске. Это слишком много данных для git для синхронизации.

Ответы:

17

Я использую GitHub для Windows, который генерирует хороший gitignore, игнорирующий большинство посторонних файлов, таких как файлы журналов или файлы, специфичные для VS, которые не нужно передавать другим.

Из того, что я могу почерпнуть из этой страницы в документации Unreal , вы, вероятно, можете игнорировать эти каталоги:

DerivedDataCache
Intermediate
Saved

Я не собираюсь игнорировать двоичные файлы, хотя бы потому, что я работаю с дизайнером уровней, у которого нет VS, и поэтому мне понадобятся файлы DLL, которые я создаю (полагаю, я могу ошибаться).

Опять же, имейте в виду, что я использую Git для Windows, который генерирует gitignore для вас при создании проекта, и он довольно большой. Я в основном только фиксирую следующее (где «ReallyCoolGame» - это название вашего проекта):

.gitattributes
.gitignore
Binaries
Config
Content
Source
ReallyCoolGame.sln
ReallyCoolGame.uproject

Я только что совершил это сам, и мне еще предстоит проверить это с моим дизайнером уровней, так что будьте осторожны с emptor.

Кроме того, я имею в виду проект, созданный с использованием шаблона C ++ от первого лица, который сохраняется в: E:\Documents\Unreal Projects\ReallyCoolGame( My Documents == E:\Documentsна моем компьютере), а не в структуре исходного каталога Unreal Engine.

Редактировать: я также не хочу включать весь контент по умолчанию, поэтому я собираюсь иметь подкаталог внутри Content только для самих игровых ресурсов с тем же именем, что и у проекта, и игнорирую все другие подкаталоги Content. Поэтому строки в верхней части моего .gitignore теперь выглядят так:

DerivedDataCache
Intermediate
Saved
Content/*
!Content/ReallyCoolGame

И дизайнер уровня поместит все наши активы Content/ReallyCoolGameвместо этого.

ОБНОВИТЬ:

Каталог Intermediate фактически содержит файлы проекта Visual Studio, которые необходимы для создания проекта. Если промежуточный каталог игнорируется, вы не сможете построить проект, потому что решение Visual Studio не найдет его. Но есть два простых обходных пути для этого.

1) Просто не игнорируйте промежуточный каталог. Конечно, в этом случае Visual Studio по-прежнему найдет все необходимые файлы проекта и сможет построить проект.

2) Это даже лучше, особенно для контроля версий: откройте ваш проект в редакторе Unreal Engine 4 и перейдите в «Файл> Обновить проект Visual Studio». Это создаст для вас совершенно новый файл решения, что означает, что вам даже не нужно его фиксировать, и вы можете добавить * .sln из папки проекта в файл .gitignore.

Кроме того, файлы * .suo и * .sdf можно вообще игнорировать, поскольку Visual Studio просто генерирует новые файлы при открытии решения.

Youdaman
источник
Я решил проблему с контентом по умолчанию по-другому. Я не добавил стартовый контент в сгенерированный проект. Подготовка материалов для начала - это действительно кусок пирога, и как только он станет серьезным, у меня появятся собственные активы. Это удаляет примерно 100 МБ файлов из проекта.
rioki
14

Я не знаю различий между публичной версией UE4 и моей, но вот .gitignoreфайл, который я использовал:

Engine/Binaries/
Engine/DerivedDataCache/
Engine/Intermediate/
Engine/Plugins/*/*/Binaries/
Engine/Plugins/*/*/Intermediate/
Engine/Programs/UnrealHeaderTool/
Engine/Programs/UnrealPak/
Engine/Saved/
Engine/Shaders/Binaries/
Engine/Source/*/*/*/obj/
Engine/Source/*/*/obj/
Engine/Source/*/obj/

UE4.opensdf
UE4.sdf
UE4.sln
UE4.suo
UE4.*.suo

GameName/Binaries/
GameName/DerivedDataCache/
GameName/Intermediate/
GameName/Saved/
Сэм Хоцевар
источник
1
У вас есть игровой проект с тремя источниками UE? Если у вас есть индивидуальная сборка двигателя, это может иметь смысл, но я использую стандартный движок. В основном мне просто нужно GameName / *, а VS игнорирует.
Риоки
Да, движок нуждается в большом количестве модификаций, и восходящее UE регулярно объединяется с хранилищем.
Сэм Хочевар
FWIW, когда я работал с UE3, у нас также был наш игровой проект в основном дереве исходных текстов UE, и у меня сложилось впечатление, что это SOP. Я почти гарантирую, что вам понадобятся и движковые моды, и намного легче отслеживать все, если вы рассматриваете UE + Your Game как единый «объект».
Стивен Стадницки,
0

Это то, что у меня есть в моем .gitignore

#Unreal Engine
StarterContent/
Saved/
Binaries/
Build/
Debug/
Intermediate/
DerivedDataCache/
UnrealHeaderTool/
UnrealPak/
obj/
*.VC.opendb
*.opensdf
*.sdf
*.suo
Шиталь шах
источник