Git 被设计用来记录文件的版本变化,当使用 git add 添加文件时,文件所处的文件夹也被同时添加, 但是你无法添加没有文件的空文件夹。

但有些情况你就是需要把空文件夹加入到版本控制,这个问题有两种解决方案。

方案一:.gitkeep

在空文件夹里创建一个 .gitkeep 文件。这只是一个使文件夹变得“不空”的空的占位文件,取其它名字也可以,.gitkeep 只是约定俗成。

方案二:.gitignore

在空文件夹里创建一个 .gitignore 文件,内容如下

# 忽略所有文件
*
# .gitignore 文件除外
!.gitignore

同样因为 .gitignore 的存在,“不空”的文件夹可以被添加了。

比较

如果想要添加的空文件夹很多,可以使用命令行自动把 .gitkeep.gitignore 复制到每个空文件夹里。

正常情况选择方案一 .gitkeep,不影响以后往这些文件夹里添加内容。

除非确定文件夹要留空,或者以后的内容不需要添加到版本控制,才使用方案二 .gitignore ,不然以后文件添加不了还得先定位原因(有时很容易忘啊),然后再修改 .gitignore ,很麻烦。