为什么 Git 忽略这个不在 .gitignore 中的目录?
Why is Git ignoring this directory that is not in .gitignore?
我遇到了一个奇怪的问题,一个目录即使不在 .gitignore
中也被忽略了。可以肯定的是,我什至删除了 .gitignore
但这并没有什么不同。
基本上我有一个目录“CliClient”,经过多次重构后,它被移到了另一个目录下。现在我注意到当这个目录存在时,git 看不到它,也不能将它添加到索引中,也不能删除它。
见下文:
正在检查目录是否存在:
$ ll CliClient/
total 8.0K
drwxr-xr-x 2 4.0K Nov 5 12:31 .
drwxr-xr-x 11 4.0K Nov 5 12:31 ..
只是为了测试,尝试添加目录:
$ git add CliClient/
不,它没有做到:
$ git status
On branch lerna_migration
Your branch is up to date with 'origin/lerna_migration'.
nothing to commit, working tree clean
所以它可能已经添加了?所以删除它:
$ git rm -r CliClient/
fatal: pathspec 'CliClient/' did not match any files
所以它就在那里,不在 .gitignore 中,不在索引中,但对 git 不可见。我尝试了很多方法,包括 git check-ignore
,但没有用。
知道可能是什么原因吗?
Git 仅跟踪文件。目录不作为“真实”实体进行跟踪,而只是在文件位置的意义上进行跟踪。由于目录是空的,git 没有任何东西可以跟踪,所以 git add
调用不会做任何事情。
我遇到了一个奇怪的问题,一个目录即使不在 .gitignore
中也被忽略了。可以肯定的是,我什至删除了 .gitignore
但这并没有什么不同。
基本上我有一个目录“CliClient”,经过多次重构后,它被移到了另一个目录下。现在我注意到当这个目录存在时,git 看不到它,也不能将它添加到索引中,也不能删除它。
见下文:
正在检查目录是否存在:
$ ll CliClient/
total 8.0K
drwxr-xr-x 2 4.0K Nov 5 12:31 .
drwxr-xr-x 11 4.0K Nov 5 12:31 ..
只是为了测试,尝试添加目录:
$ git add CliClient/
不,它没有做到:
$ git status
On branch lerna_migration
Your branch is up to date with 'origin/lerna_migration'.
nothing to commit, working tree clean
所以它可能已经添加了?所以删除它:
$ git rm -r CliClient/
fatal: pathspec 'CliClient/' did not match any files
所以它就在那里,不在 .gitignore 中,不在索引中,但对 git 不可见。我尝试了很多方法,包括 git check-ignore
,但没有用。
知道可能是什么原因吗?
Git 仅跟踪文件。目录不作为“真实”实体进行跟踪,而只是在文件位置的意义上进行跟踪。由于目录是空的,git 没有任何东西可以跟踪,所以 git add
调用不会做任何事情。