我的项目很老了。/.gitignore
和有问题的目录(/cache/
)发生了多种情况。
现在,当我clone
项目时,不会创建目录。
我只有一个根,为了测试的目的,我清空了它。.gitignore
不存在,~/.config/git/ignore
为空。
问题是,无论我对目录/.git/info/exclude
执行什么操作(创建或删除),都不会显示任何更改,而且git status
也不会找到任何条目,因此我既不能将目录添加到git,也不能删除或忽略它。
有什么解决办法吗?
最佳答案
Git跟踪文件尼亚,而不是目录。只有当有一个文件需要放在目录中时,才会创建目录。
在Git中包含“empty”目录的一种常见技术是在其中创建一个空文件:
touch cache/.gitkeep
git add cache/.gitkeep
git commit
将其推送到共享存储库,然后再次尝试克隆。最后应该得到一个包含单个文件的
cache/
目录:.gitkeep
。如果您的目标是创建目录但忽略其内容,那么您将希望在.gitignore
文件中包含类似的内容:cache/*
!cache/.gitkeep
实际上,它也不会真正跟踪文件。它跟踪内容,但一般认为Git作为跟踪文件是非常安全的。