linux - 不能让 git 忽略一个目录

标签 linux git version-control gitignore

我的项目很旧。 /.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/

相关文章:

git rebase --strategy=我们的用例澄清

linux - 如何在shell脚本中创建一个文件

git - 错误 : git checkout-index: unable to create file (Permission denied)

Git push 不退出

javascript - 使用 JavaScript 命名空间有什么危险吗?

version-control - 如何在emacs的边缘添加差异标记?

linux - 在哪里可以找到 mmap 的源代码?

linux - 通过 Chef 在 Amazon Linux 上安装 Zabbix Agent - Agent Starting and Stopping Got signal [signal :15(SIGTERM)reason:0]. Exiting

python - 如果进程挂起/崩溃,如何重新启动 python 脚本

version-control - 您如何处理重构和合并需求之间的紧张关系?