好的所以我分叉了一个项目,运行git pull upstream master
并且git status表示工作目录干净。然后我从项目中运行了一些测试
现在git status
显示
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# activemodel/log/
现在$ git clean -d -f -n
显示
# Would remove actionpack/test/temp/
# Would remove activemodel/log/
这些只是日志文件的目录,但我很好奇为什么actionpack/test/temp/
显示在git clean dry run
但未显示在git status
如果所有未跟踪的文件都未显示在git status
中,然后git clean
会删除您未意识到会删除的文件,则可能会出现问题。
有人知道为什么会这样吗?
答案 0 :(得分:3)
它们是空目录吗?
Git不跟踪空目录(实际上Git根本不跟踪目录,因为你可以在Git FAQ中阅读),因此它们不会出现在git status
中,但它们确实会被清除git clean -f -d
。
这就是为什么这种git-clean
命令的干运行显示的目录不会以常规git status
显示。
作为旁注,这也是为什么有些人在空目录中添加占位符文件(有时按惯例称为.gitinclude
)以便让Git跟踪它们的原因。