我的项目很老了。 /.gitignore
和相关目录(/cache/
)发生了多处事情。
现在当我clone
项目时,目录没有被创建。
我只有一个(根).gitignore
,为了测试目的,我把它清空了。
~/.config/git/ignore
不存在,/.git/info/exclude
为空。
问题在于,无论我对目录git status
做什么(创建或删除)都没有显示任何更改,git rm --cached cache/
找不到任何条目,所以我既不能将目录添加到git也不能删除并忽略它
有任何建议如何解决这个问题?
答案 0 :(得分:3)
Git跟踪文件¹,而不是目录。只有当文件需要存在于其中时才能创建目录。
在Git中包含“空”目录的常用技巧是在其中创建一个空的文件:
touch cache/.gitkeep
git add cache/.gitkeep
git commit
将其推送到您的共享存储库,然后再次尝试克隆。您应该得到一个包含单个文件的cache/
目录:.gitkeep
。如果您的目标是创建目录但忽略其内容,那么您希望在.gitignore
文件中包含以下内容:
cache/*
!cache/.gitkeep
¹实际上,它也没有真正跟踪文件。它跟踪内容,但一般认为Git是跟踪文件非常安全。