1. 问题描述
项目工程中新建了一个空目录,通过git status和git diff都无法查看到修改记录。
2. 问题原因
git和 svn不同,仅仅跟踪文件的变动,不跟踪目录。所以,一个空目录,如果里面没有文件,即便 git add这个目录,另外在别处 check out 的时候,是没有这个空目录的。
3. 问题解决
有时候,确实需要在代码仓库中保留某个空目录。比如测试时需要用到的空目录。
通过执行下面指令可以实现对空目录的追踪:
find . -type d -empty -exec touch {}/.gitignore \;
执行后再通过git status和git diff可以查看到新增目录。
另外还有一种方法:
只需要在空目录下创建.gitkeep
文件,然后在项目的.gitignore
中设置不忽略.gitkeep
.gitkeep 是一个约定俗成的文件名并不会带有特殊规则