之前使用 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 |