我可以在源代码管理中忽略哪些Unreal Engine 4项目文件?


30

我想使用git将Unreal Engine 4项目置于源代码控制之下。(我知道编辑器支持Perforce和Subversion,但我不在乎这些。)

我在存储库中包括哪些文件夹和文件,哪些可以忽略?

我看到它的方式,需要以下:ConfigContentSource*.sln*.uproject

的事情,我可以忽略:BinariesDerivedDataCacheIntermediateSaved*.suo*.sdf*.opensdf

它是否正确?


2
如果存在.sln,通常会有一个.vXX.suo文件(通常是不可见的),您可能希望忽略该文件,因为它包含特定于用户的选项。
乔什

2
Github维护各种项目的忽略文件列表。目前还没有Unreal4的条目。如果找到理想的列表,也许您应该提交拉取请求以将其添加到那里。
塞斯·巴丁

我已经忽略了VS临时文件,但是感谢您使它对所有人都显而易见。我修改了这个问题以反映这一点。
rioki 2014年

@rioki您对使用git有什么印象?昨天是我与UE合作的第一时间,我用500mb的硬盘空间来保存简单级别。git无法同步太多数据。

Answers:


17

我正在使用适用于Windows的GitHub,它会生成一个不错的gitignore,它忽略了大多数无关的文件,例如日志文件或特定于VS的不需要共享的文件。

从我从Unreal docs的此页面收集的信息来看,您可能会忽略以下目录:

DerivedDataCache
Intermediate
Saved

我不会忽略Binaries,仅仅是因为我正在与没有VS的关卡设计师合作,因此需要我构建的DLL文件(我想,我可能是错的)。

再次提醒您,我正在使用Windows的Git,当您创建项目时,它会为您生成gitignore,而且它很大。我几乎只提交以下内容(其中“ ReallyCoolGame”是您的项目的名称):

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

我只是自己做这个,还没有和我的关卡设计师一起测试,因此请小心。

另外,我指的是使用第一人称C ++模板创建了一个项目,它被保存到:E:\Documents\Unreal Projects\ReallyCoolGameMy Documents == E:\Documents虚幻引擎源代码目录结构中我的机器上),而不是。

编辑:我也不想包括所有默认内容,所以我将在Content中有一个子目录,仅用于游戏资产本身,其名称与项目相同,而忽略Content的所有其他子目录。因此,.gitignore顶部的行现在看起来像:

DerivedDataCache
Intermediate
Saved
Content/*
!Content/ReallyCoolGame

关卡设计师将把我们所有的资产都放进去Content/ReallyCoolGame

更新:

中间目录实际上包含Visual Studio的项目文件,这是构建项目所必需的。如果忽略Intermediate目录,则将无法生成项目,因为Visual Studio解决方案找不到该项目。但是,有两个简单的解决方法。

1)只是不要忽略中间目录。当然,在这种情况下,Visual Studio仍会找到所需的所有项目文件,并能够构建项目。

2)这甚至更好,尤其是对于版本控制:在Unreal Engine 4编辑器中打开您的项目,然后转到“文件>刷新Visual Studio项目”。这将为您生成一个全新的解决方案文件,这意味着您甚至不需要提交该文件,并且可以将项目文件夹中的* .sln添加到.gitignore文件中。

* .suo和* .sdf文件通常也可以忽略,因为Visual Studio在打开解决方案时会生成新文件。


我以不同的方式解决了默认内容的问题。我没有将入门内容添加到生成的项目中。积累开始使用的材料确实是小菜一碟,一旦认真起来,我将拥有自己的资产。这将从项目中删除大约100 MB的文件。
rioki 2014年

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忽略。
rioki 2014年

是的,引擎需要大量修改,并且上游UE会定期合并到存储库中。
sam hocevar 2014年

FWIW,当我使用UE3时,我们还在核心UE源树中包含了我们的游戏项目,我的印象是这是SOP。我几乎可以保证,您也将需要进行引擎mod,如果将UE +您的游戏视为一个“实体”,则可以轻松掌握所有内容。
Steven Stadnicki 2014年

0

这就是我的.gitignore

#Unreal Engine
StarterContent/
Saved/
Binaries/
Build/
Debug/
Intermediate/
DerivedDataCache/
UnrealHeaderTool/
UnrealPak/
obj/
*.VC.opendb
*.opensdf
*.sdf
*.suo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.