如何配置.gitignore让Git仅追踪Unity项目中的.cs文件及所属目录
结论:单独使用
**/*.cs规则完全无法满足你的需求 你需要搭配完整的白名单规则才能实现「仅纳入所有.cs后缀文件、忽略其余所有内容」的效果,具体逻辑和配置如下:
错误原因说明
.gitignore文件的规则逻辑是默认匹配到的内容会被忽略,仅用!开头的规则才会作为白名单取消忽略,同时还有一个关键限制:如果某个父级目录被忽略,Git不会遍历该目录下的内容匹配白名单规则。
- 如果你只写
**/*.cs:实际作用是让Git忽略所有路径下的.cs文件,和你的需求完全相反 - 如果你只写白名单规则
!**/*.cs:要么会把大量非.cs的Unity工程文件也纳入Git跟踪,要么会因为父目录被提前忽略,导致深层子目录里的.cs文件无法被检测到
正确的.gitignore配置
# 第一步:全局忽略所有文件 * # 第二步:放开所有目录的遍历权限,保证Git能找到深层的.cs文件 !*/ # 第三步:白名单放开所有.cs后缀文件的跟踪限制 !**/*.cs
可选优化
如果你的业务脚本全部存放在Unity默认的Assets目录下,可以把最后一条规则调整为!Assets/**/*.cs,避免仓库根目录、Temp目录等位置的非业务.cs文件被误纳入跟踪。
内容的提问来源于stack exchange,提问作者Tomas Doherty
相关产品推荐
相关产品推荐

