我正在将 Git 用于我自己的 Unity 项目(我是唯一的开发人员,所以我可以使用破坏性命令).
Unity 开发人员可能知道,Unity 为“Assets”文件夹(项目的主文件夹)下的所有内容创建“.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 the .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
Asset 目录中的文件,它会覆盖并否定继承的无知!
我对你的文件结构层次结构有点困惑,所以这里有一个例子来演示。
.
├── .gitignore
├── main.meta
└── unity
├── .gitignore
└── sub.meta
根目录的内容.gitignore
*.meta
内容unity/.gitignore
!*.meta
现在让我们看看 git 要跟踪什么:
git add . && git status --ignored
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: .gitignore
new file: unity/.gitignore
new file: unity/sub.meta
Ignored files:
(use "git add -f <file>..." to include in what will be committed)
main.meta
您可以看到它正在跟踪 Unity 元文件,但在其他地方忽略它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)