我正在将Git用于我自己的Unity项目(我是唯一的开发人员,所以我可以使用破坏性的命令)。
正如Unity开发人员可能知道的那样,Unity为项目的主文件夹“资产”文件夹下的所有内容创建“ .meta”文件。并且这些文件“必须”也必须与原始文件一起进行跟踪,以保持项目的完整性。
这里是项目存储库的.gitignore
文件:
# Unity Project Folder
/ExampleProjectName/[Ll]ibrary/
/ExampleProjectName/[Tt]emp/
/ExampleProjectName/[Oo]bj/
# Autogenerated VS/MD solution and project files
ExportedObj/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
# Unity3D Generated File On Crash Reports
sysinfo.txt
# OS Related Stuff
desktop.ini
.DS_Store
.DS_Store?
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
我也有一个框架和通用代码存储库。而且,我ignore此框架存储库中的.meta
文件,因为当将框架导入项目时,这些脚本的.meta
文件应由每个项目生成。 (而且在框架存储库中到处都看到.meta
文件很烦人。]
这里是框架存储库的.gitignore
文件:
# Exclude ".meta" files created by Unity
*.meta
# Autogenerated VS/MD solution and project files
### The rest is identical to the project .gitignore file. ###
您可能想像过,我试图将框架作为子树添加到项目存储库。它实际上有效,但是存在一个问题:框架存储库的.gitignore
文件会忽略.meta
文件,它也适用于项目存储库,并导致其忽略子树目录下的.meta
文件。
总结:我希望子树目录(递归)中的.meta
文件在项目存储库中被跟踪,但是在框架存储库中被忽略。
[[(对于那些想知道为什么必须跟踪.meta
文件的人,最重要的原因是.meta
文件包含相应资产的ID,而Unity使用这些ID以便在项目中引用这些资产。]]
.gitignore
文件,该文件使用!
覆盖并否定继承的无知