.gitignore文件解释
!**/glob-import/dir/node_modules
.DS_Store
.idea
.pnpm-store
*.cpuprofile
*.local
*.log
/.vscode/
/docs/.vitepress/cache
/packages/vite/LICENSE
dist
dist-ssr
explorations
node_modules
playground-temp
temp
TODOs.md
.eslintcache
- 特殊规则
!**/glob-import/dir/node_modules
- ! 表示取反,即不忽略这个文件/目录
- 这是一个例外规则,表示 glob-import/dir/node_modules 目录下的文件会被 Git 追踪
- 系统文件
.DS_Store # macOS 系统生成的文件夹显示属性文件
.idea # JetBrains IDE(如 WebStorm)的配置目录
- 包管理器相关
.pnpm-store # pnpm 包管理器的存储目录
node_modules # 所有依赖包的安装目录
- 构建输出
dist # 构建输出目录
dist-ssr # SSR(服务端渲染)构建输出目录
- 临时文件
*.cpuprofile # Node.js CPU 性能分析文件
*.local # 本地配置文件
*.log # 日志文件
playground-temp # 临时 playground 目录
temp # 临时文件目录
- IDE 和编辑器
/.vscode/ # VS Code 配置目录
- 文档相关
/docs/.vitepress/cache # VitePress 文档的缓存目录
- 许可证文件
/packages/vite/LICENSE # Vite 包的许可证文件
- 其他
explorations # 探索性代码目录
TODOs.md # TODO 列表文件
.eslintcache # ESLint 缓存文件
不同路径的解释
- 以
/开头
/.vscode/ # 只忽略根目录下的 .vscode 目录
/dist # 只忽略根目录下的 dist 目录
- 表示从项目根目录开始匹配
- 只匹配根目录下的文件/目录
- 不会匹配子目录中的同名文件/目录
- 以
./开头
./dist # 忽略当前目录下的 dist 目录
./*.log # 忽略当前目录下的所有 .log 文件
- 表示从当前目录开始匹配
- 效果与直接写文件名相同
- 不推荐使用,因为 .gitignore 总是相对于项目根目录
- 以
*开头
*.log # 忽略所有目录下的 .log 文件
*.local # 忽略所有目录下的 .local 文件
- 表示匹配任意目录下的文件
- 只匹配文件名,不匹配目录名
- 常用于忽略特定类型的文件
- 以
**开头
**/node_modules # 忽略所有目录下的 node_modules
**/*.log # 忽略所有目录下的 .log 文件
- 表示匹配任意深度的目录
- 可以匹配任意目录下的文件/目录
- 常用于忽略特定类型的文件/目录
- 直接以文件名开头
.DS_Store # 忽略所有目录下的 .DS_Store 文件
node_modules # 忽略所有目录下的 node_modules 目录
- 表示匹配任意目录下的文件/目录
- 效果与
**/开头相同 - 最常用的写法
- 结尾带
/
dist/ # 忽略所有 dist 目录
.vscode/ # 忽略所有 .vscode 目录
- 表示只匹配目录,不匹配文件
- 更明确的表示这是一个目录
- 建议对目录使用这种写法
- 结尾不带
/
dist # 忽略所有 dist 文件或目录
.vscode # 忽略所有 .vscode 文件或目录
- 表示匹配文件或目录
- 不够明确,可能造成混淆
- 不推荐使用
- 组合使用
**/dist/** # 忽略所有 dist 目录及其内容
**/*.log # 忽略所有 .log 文件
!**/dist/README.md # 不忽略 dist 目录下的 README.md
最佳实践
- 目录匹配
# 推荐
dist/ # 明确表示是目录
.vscode/ # 明确表示是目录
- 文件匹配
# 推荐
*.log # 匹配所有 .log 文件
.DS_Store # 匹配所有 .DS_Store 文件
- 特定目录匹配
# 推荐
/src/dist/ # 只匹配 src 目录下的 dist
/docs/.vitepress/cache/ # 明确指定路径
- 全局匹配
# 推荐
node_modules/ # 匹配所有 node_modules 目录
*.local # 匹配所有 .local 文件
- 例外规则
# 推荐
!**/dist/README.md # 不忽略特定文件
!**/glob-import/dir/node_modules # 不忽略特定目录