Git 忽略某个目录中的文件,同时保留这个目录
类似的一个问题是项目根目录下可能有 logs 一类的目录,
我们希望他人把仓库 clone 下来的时候能够已经携带了这个目录,
但又不希望让这个目录中的日志文件进版本库。
之前看到一些项目用了一种比较 ugly 的做法:
在 logs 下建立一个 .gitkeep 空文件(git 无法版本控制没有任何文件的空目录),
然后再在项目根目录 .gitignore 中写入一行
logs/*
其实完全没有这样的必要,我们可以直接在 logs 里面写一个 .gitignore 文件,内容如下:
* !.gitignore
然后
git add logs/.gitignore
git commit
提交。
这个 .gitignore 既留住了空目录,又声明了忽略。
而且某天如果要删除 logs 目录,直接 git rm -r logs 即可,
无需再修改项目根目录下的 .gitignore 。