git 未正确忽略 Unity 文件

Unity files not being ignored properly by git

我在一个小组中使用 Unity,由于我在几个地方读到的内容,我们将以下几行放入 .gitignore

# =============== #
# Unity generated #
# =============== #
[Tt]emp/
[Oo]bj/
[Bb]uild
[Ll]ibrary/
sysinfo.txt
*.stackdump

# ============================================= #
# Visual Studio / MonoDevelop / Rider generated #
# ============================================= #
[Ee]xported[Oo]bj/
.vs/
/*.userprefs
/*.csproj
/*.pidb
/*.suo
/*.sln*
/*.user
/*.unityproj
/*.booproj
/.idea*/

# ============ #
# OS generated #
# ============ #
.DS_Store*
._*
.Spotlight-V100
.Trashes
ehthumbs.db
[Tt]humbs.db
[Dd]esktop.ini

当我克隆项目时,工作目录是干净的,但是当我在 Unity 中打开这个项目时,我看到大量文件在 git status 中被标记为已更改:

为什么要添加这些文件,即使它们在 .gitignore 中?

它们是在您创建 .gitignore 文件之前偶然添加的吗?

如果是,则删除它们:

git rm --cached [file]

之后对更改进行新的提交。就是这样,他们将从那时起被删除和取消跟踪。

太经典了!如果您在 git 开始跟踪您的文件后添加了 gitignore,它不会释放它已经跟踪的文件。您需要通过执行以下操作 "reset" 它:

git rm -r --cached .
git add .
git commit -m "Gitignore now working!"

会处理好一切。 但是确保在执行此操作之前提交所有更改,否则它们将被删除。