1. 用占位文件保留待用目录
创建 uploads,并用编辑器新建空文件 uploads/.gitkeep,再暂存这个具体文件:
git add -- uploads/.gitkeep检查索引是否列出 uploads/.gitkeep。.gitkeep 是命名惯例,Git 不会特殊处理;说明目录用途的 README 也可以。它不会自动忽略以后添加的文件。
git ls-files -- uploads/ 2. 保留目录但忽略生成内容
另一种方案是在 uploads 中创建 .gitignore 作为占位文件,内容如下。* 忽略内容,!.gitignore 允许规则文件本身被跟踪。为这个目录选择该方案即可,不必同时采用 .gitkeep 方案。
规则文件本身纳入版本控制,因此目录中会包含这个文件。该方案会持续忽略后续文件,直到你调整规则。
*
!.gitignore 3. 验证选定方案
采用 .gitignore 方案时,暂存其规则文件:
git add -- uploads/.gitignore创建 uploads/example.bin,检查其匹配规则:
git check-ignore -v -- uploads/example.bin列出索引记录,应看到 uploads/.gitignore,而没有 example.bin。如果父级规则排除了 uploads 目录本身,先修正父级规则,让 Git 能读到目录内的 .gitignore。
git ls-files -- uploads/ 准确行为与更多细节请参阅官方说明: Git 官方文档 · git add 官方文档