不同的unity项目在一个repo中,并希望gitignore忽略所有大容量文件夹



我有一个文件夹,里面存放着我所有不同的游戏,每个游戏都有自己的"Assets", "Library", "Logs"等文件夹。

以前,当我只想上传一个项目到GitHub时,我选择了.gitignoreUnity,它自动忽略了那些不需要上传的巨大文件。

现在,我在一个文件夹中有多个项目,我想把它们全部上传到一个存储库中,而且,我想让我的.gitignore忽略每个目录中所有不必要的文件,就像过去只为一个Unity游戏做的那样。

我的。gitigonore现在是这样的:

[Ll]ibrary/
[Tt]emp/ 
[Oo]bj/ 
[Bb]uild/ 
[Bb]uilds/ 
Assets/AssetStoreTools*
# Visual Studio cache directory .vs/
# Autogenerated VS/MD/Consulo solution and project files ExportedObj/ .consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.opendb
*.VC.db
# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
# Unity3D Generated File On Crash Reports sysinfo.txt
# Builds
*.apk
*.unitypackage

为了实现我想要实现的目标,我应该改变什么?

顺便说一句,我刚接触git,我很确定我的问题有一个非常简单的答案。

但是我在网上找不到它!

选项A-子模块

您可以查看子模块,并拥有一个类似的存储库

  • 主存储库
    • 应用程序1-子模块
    • 应用程序2-子模块

每个子模块都会带来自己的.gitignore,该CCD_5应用于相应的根文件夹。

如果你有一个主应用程序,然后有多个实际的功能模块,你都在这个主应用程序中使用,这是最有意义的。

选项B-**路径通配符

只需调整.gitignore以忽略任何具有类似的名称的文件夹

**/[Ll]ibrary/
**/[Tt]emp/ 
**/[Oo]bj/ 
**/[Bb]uild/ 
**/[Bb]uilds/ 
**/Assets/AssetStoreTools*

参见.gitignore文档

与完整路径名匹配的模式中的两个连续星号("**"(可能具有特殊含义:

  • 前导"**"后跟斜线表示所有目录中匹配。例如,"**/foo"在任何位置匹配文件或目录"foo",与模式"foo"相同。CCD_ 14与文件或目录CCD_

如果您正在处理一个更大的项目,而该项目实际上只包括完全独立的不同Unity项目,那么这是最有意义的。

不过要小心:如果你现在有一个像Assets/Models/Obj/...这样的文件夹,这个文件夹将被忽略;(

为了避免这种情况,如果文件夹位于Assets文件夹(如(中,则可以再次忽略文件夹

!**/Assets/**/[Ll]ibrary/
!**/Assets/**/[Tt]emp/ 
!**/Assets/**/[Oo]bj/ 
!**/Assets/**/[Bb]uild/ 
!**/Assets/**/[Bb]uilds/ 

相关内容

最新更新