不能让git忽略一个目录

时间:2014-09-15 16:28:34

标签: linux git version-control gitignore

我的项目很老了。 /.gitignore和相关目录(/cache/)发生了多处事情。

现在当我clone项目时,目录没有被创建。 我只有一个(根).gitignore,为了测试目的,我把它清空了。

~/.config/git/ignore不存在,/.git/info/exclude为空。

问题在于,无论我对目录git status做什么(创建或删除)都没有显示任何更改,git rm --cached cache/找不到任何条目,所以我既不能将目录添加到git也不能删除并忽略它

有任何建议如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

Git跟踪文件¹,而不是目录。只有当文件需要存在于其中时才能创建目录。

在Git中包含“空”目录的常用技巧是在其中创建一个空的文件

touch cache/.gitkeep
git add cache/.gitkeep
git commit

将其推送到您的共享存储库,然后再次尝试克隆。您应该得到一个包含单个文件的cache/目录:.gitkeep。如果您的目标是创建目录但忽略其内容,那么您希望在.gitignore文件中包含以下内容:

cache/*
!cache/.gitkeep

¹实际上,它也没有真正跟踪文件。它跟踪内容,但一般认为Git是跟踪文件非常安全。