你在 git 项目中见过 .gitkeep
文件吗? 你应该遇到过。如果你通过 angular Cli 安装过最新的 angular2 或者 angular4 项目,你一定会发现 ./src/app/assets
文件夹下有一个 .gitkeep
文件。你是不是很好奇这个文件是干嘛用的?我们都知道 .gitignore
,那么你是不是觉得这个文件是 .gitignore
的兄弟? Git 对这个神奇文件做了什么特别的事情吗?
什么是 .gitkeep?
在这之前,我们必须清楚 Git 不跟踪空文件夹 。如果你的项目文件夹里边有任何的空文件夹,Git 都会忽略掉。但如果你在文件夹里边添加了一个文件,Git 就会开始跟踪这个文件夹。 无论这个文件是什么,内容如何,名字是什么。
所以什么是 .gitkeep
呢?实际上,这个名字是社区起的,其他人可以容易的把它和 .gitignore
联系起来。Git 并没有给这个文件任何的像 .gitignore
文件一样的特殊权限。
如果你想跟踪你上游项目的空文件夹,那么你就在这个文件夹中创建一个 .gitkeep
文件。其他开发者很容易就会理解这是干什么用的。通常来说,assets
文件夹和 log
文件夹需要这样做。记住,不要把 .gitkeep
添加到 .gitignore
文件中,那样的话空文件夹就从你的文件系统中消失了。
一小部分人通过在空文件夹中添加 .gitigonre
文件来保持跟踪,但是这一举措经常会让其他人感到困惑,毕竟 .gitignore
是用来让你的版本控制系统忽略文件用的。不过这也是另一种保持跟踪空文件夹的方法。
原文链接:What is .gitkeep? Differences between .gitignore and .gitkeep