之前使用 Sourcetree 管理一个项目,发现某个文件夹中的文件没有被 Git 跟踪,最后发现是该文件夹中的 .gitkeep 文件所导致。

# 介绍

Git 默认不跟踪空目录,所以不能提交、推送空文件夹。要让 Git 识别一个空目录,不成文的规定是在其中放入一个名为 .gitkeep 的文件。Git 会在原本为空的文件夹中看到 .gitkeep 文件,并将该文件夹作为下一次提交或推送的一部分,以此实现 Git 跟踪。该规定并没有在官方文档中定义,只是一个社区约定。

.gitkeep 文件应该是一个目录下的唯一文件,当该目录下有了其他文件时,就应该删除 .gitkeep 文件。否则可能出现文章开头提到的问题。

# 使用

使用 .gitkeep 提交并推送空的 Git 文件夹

mkdir empty-directory
cd empty-directory
touch .gitkeep
git add .
git commit -m "Commit empty folder in Git with gitkeep"
git push origin
更新于