我的项目很旧。 /.gitignore
和有问题的目录 (/cache/
) 发生了很多事情。
现在,当我克隆
项目时,目录没有被创建。
我只有一个(root).gitignore
并且出于测试目的我清空了它。
~/.config/git/ignore
不存在,/.git/info/exclude
为空。
问题是,无论我对目录 git status
做什么(创建或删除)都没有显示任何更改,并且 git rm --cached cache/
找不到任何条目,所以我既不能将目录添加到 git,也不能删除和忽略它。
有什么解决办法吗?
最佳答案
Git 跟踪文件¹,而不是目录。只有当有文件需要 stash 在目录中时,目录才会被创建。
在 Git 中包含“空”目录的常用技术是在其中创建一个空文件:
touch cache/.gitkeep
git add cache/.gitkeep
git commit
将其推送到您的共享存储库,然后再次尝试克隆。您应该以包含单个文件的 cache/
目录结束:.gitkeep
。如果您的目标是创建目录但忽略其内容,您将希望在您的 .gitignore
文件中包含这样的内容:
cache/*
!cache/.gitkeep
¹实际上,它也不会真正跟踪文件。它跟踪内容,但一般认为 Git 跟踪文件是非常安全的。
关于linux - 不能让 git 忽略一个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25852611/