当前位置: 首页 > news >正文

Unity3D 入门:Unity 项目版本管理建议使用的 .gitignore 忽略文件和 .gitattributes 文件(2020年4月更新)

Unity3D 项目虽然说使用 C# 脚本开发,但毕竟不是 .NET/C# 项目。今天一位小伙伴告诉我说用错了 .gitignore 文件,结果管理仓库时丢了很多重要的文件。


实际上,GitHub 官方提供了大量不同项目类型的 .gitignore 文件,并且有广大的社区支持时时更新,直接前往 GitHub 官网下载是最好的选择了。

适用于 Unity 项目的 .gitignore 模板:

  • gitignore/Unity.gitignore at master · github/gitignore
# This .gitignore file should be placed at the root of your Unity project directory
#
# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
#
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/

# MemoryCaptures can get excessive in size.
# They also could contain extremely sensitive data
/[Mm]emoryCaptures/

# Asset meta data should only be ignored when the corresponding asset is also ignored
!/[Aa]ssets/**/*.meta

# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*

# Autogenerated Jetbrains Rider plugin
/[Aa]ssets/Plugins/Editor/JetBrains*

# Visual Studio cache directory
.vs/

# Gradle cache directory
.gradle/

# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db

# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta

# Unity3D generated file on crash reports
sysinfo.txt

# Builds
*.apk
*.unitypackage

# Crashlytics generated file
crashlytics-build.properties

# Packed Addressables
/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*

# Temporary auto-generated Android Assets
/[Aa]ssets/[Ss]treamingAssets/aa.meta
/[Aa]ssets/[Ss]treamingAssets/aa/*

注意到 sln 和 csproj 都是忽略的文件吗?这是 Unity 的项目,其他 .NET 项目经常使用的 sln 解决方案管理方式在这里只是辅助手段而已,你可以阅读我的另一篇博客了解更多:

  • Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件 - walterlv

额外的,你可能注意到 Unity 项目里面有大量的 *.meta 文件,是自动生成的,这个要加入到版本管理吗?答案是需要。Unity 创建这些文件是为了给导入的文件添加额外的元数据信息的,毕竟不能直接修改原来的文件。这些信息包含:

  • 描述如何导入这个资产文件
  • 如何在项目中准备资产

如果你删除了这些文件,那么 Unity 会用默认的元数据信息生成一个对应的 .meta 文件。

其他类型的 .gitignore 文件前往 GitHub 的 gitignore 仓库:

  • github/gitignore: A collection of useful .gitignore templates

另外,开启一个新的 Unity 项目时,放一个适用于大多数场景的 .gitattributes 也可以一开始规避一些坑。你可以从下面这位大佬拿到他整理的一个 .gitattribute 文件。

  • .gitattributes for Unity3D with git-lfs

参考资料

  • unity5 - What is a .meta file and why does Unity create them for all of my assets? - Stack Overflow

我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

相关文章:

  • Unity3D 入门:让 C# 脚本公开可在 Unity 编辑器中设置的属性
  • Unity3D 入门:如何管理 Unity 项目中的 NuGet 包?使用第三方 NuGet 包管理器——NuGetForUnity
  • Unity3D 入门:如何在脚本中找到游戏对象的父子级 祖孙级对象和它们的组件
  • Unity3D 入门:如何制作天空效果?天空盒的使用
  • Unity3D 入门:使用 Visual Studio 开发 Unity C# 脚本,说说根目录的那些 sln 和 csproj 文件
  • Unity3D 入门:最简单的控制视角,以及控制角色前进、转向的脚本
  • 比较 Windows 上四种不同的文件(夹)链接方式(NTFS 的硬链接、目录联接、符号链接,和大家熟知的快捷方式)
  • 了解 Windows Linux 下命令行 Shell 启动程序传参的区别,这下不用再担心 Windows 下启动程序传参到 Linux 下挂掉了
  • 适合 .NET 开发者用的 GitHub Actions(时不时更新)
  • 在 CMD 里根据进程名杀掉进程
  • 在 PowerShell 里根据进程名杀掉进程
  • 在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargeting TargetFrameworks)
  • 专业团队:推荐一个网站,生成巨幅文字注释
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • 通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 【刷算法】从上往下打印二叉树
  • android图片蒙层
  • CSS相对定位
  • Date型的使用
  • eclipse(luna)创建web工程
  • Fundebug计费标准解释:事件数是如何定义的?
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Java 最常见的 200+ 面试题:面试必备
  • JS实现简单的MVC模式开发小游戏
  • k8s如何管理Pod
  • MQ框架的比较
  • node和express搭建代理服务器(源码)
  • 从tcpdump抓包看TCP/IP协议
  • 高性能JavaScript阅读简记(三)
  • 码农张的Bug人生 - 见面之礼
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 如何在 Tornado 中实现 Middleware
  • 字符串匹配基础上
  • 关于Android全面屏虚拟导航栏的适配总结
  • 交换综合实验一
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #13 yum、编译安装与sed命令的使用
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #微信小程序:微信小程序常见的配置传旨
  • (12)Linux 常见的三种进程状态
  • (4)(4.6) Triducer
  • (C#)获取字符编码的类
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (论文阅读11/100)Fast R-CNN
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (四)JPA - JQPL 实现增删改查
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)Unity3DUnity3D在android下调试
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET的数据绑定