git - 为什么 Git 忽略这个不在 .gitignore 中的目录?

标签 git directory 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 调用不会执行任何操作。

关于git - 为什么 Git 忽略这个不在 .gitignore 中的目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64697414/

相关文章:

git - 如何在 Git 中重命名带注释的标签

javascript - 潜在的 Git/Rails 灾难 : Web page no longer loading

git - hg-git push 提示公钥

linux - 如何搜索包含特定文本的整个 Linux 服务器文件?

git stash 恢复被忽略的文件

git - 只推送某些文件一次

git - 检查单个贡献者的代码更改?

c# - 如何确保所有写入的文件都在给定路径下(防止目录访问)

java - 获取文件夹中的文件数,省略子文件夹

git - .gitignore 用于特定深度的目录?