你是否经历过这些崩溃瞬间?

  • git status 刷出满屏的 node_modules
  • 误提交了存有密码的 .env 文件
  • 提交了 2GB 的临时编译文件

最近新建项目时发现没有 .gitignore 文件,结果提交时不小心把依赖全传上去了!网上教程又都是空谈重要性,很少教具体怎么写。今天我就用血泪经验总结这份实战指南:
(文末有通用模板,如果不想看可以直接跳到后面使用)


一、基础规则:3种核心写法

1. 忽略单个文件 → 直接写文件名

.env           # 根目录的 .env 文件(含敏感密钥千万别提交!)
/config.yaml   # 只忽略根目录的 config.yaml(开头加 /)

2. 忽略整个目录 → 路径结尾必须加 /

build/         # 忽略根目录的 build 文件夹(正确写法)
/cache/*       # 忽略根目录 cache 下的文件(不忽略 cache 本身)

注意:/targettarget/ 天差地别!

  • target → 忽略所有名叫 target 的文件和文件夹
  • target/ → 只忽略名为 target 的目录

3. 忽略一类文件 → 通配符 *?

*.log          # 所有 .log 结尾的文件
temp-?.txt     # 忽略 temp-a.txt、temp1.txt 等(`?` 表示一个字符)

二、高阶技巧

双星号 **:跨层级匹配

**/__pycache__/    # 忽略所有层级的 __pycache__ 文件夹(Python 必备)
docs/** /*.tmp      # 匹配 docs 下任意子目录的 .tmp 文件

! 取反规则:特赦某些文件

*.js             # 忽略所有 .js 文件
!main.js         # 但保留根目录的 main.js(必须写在 *.js 后!)

转义特殊字符 → 加 \

\#debug.txt      # 忽略名为 #debug.txt 的文件(而不是注释)
\$\$cache        # 忽略名字含 $$ 的文件夹

三、血泪经验:3大避坑指南

1. 已跟踪的文件 .gitignore 无效!

如果之前提交过 config.ini,即使加到 .gitignore 里,Git 仍会跟踪它。

解决方案:

git rm --cached config.ini  # 从仓库删除(保留本地文件)

2. 规则顺序决定生死

.gitignore 从上往下匹配,规则冲突时后面的失效:

❌ 错误写法:永远忽略不到 important.js

!important.js    # 特赦此文件
*.js             # 但后续规则又忽略所有 js

✅ 正确写法:

*.js             # 先忽略所有 js
!important.js    # 再特赦这个文件

3. 别用空格做对齐

以下写法会让 Git 困惑:

*.log  # 别这样写注释(# 必须在行首!)
   /dist  # 别缩进(行首空格会导致规则失效)

四、最佳实践:开箱即用模板

通用模板(Web开发)

# 系统文件
.DS_Store        # macOS垃圾文件
Thumbs.db        # Windows缩略图

# 环境配置
.env             # 环境变量(千万别上传!)
.venv/           # Python虚拟环境

# 构建产物
dist/            # 打包目录
*.exe            # 可执行文件

# 日志缓存
*.log
.cache/

IDE 配置文件

# VS Code
.vscode/
!.vscode/settings.json # 保留团队共享设置

# IntelliJ
.idea/
*.iml

更多官方模板:GitHub 官方 .gitignore 库(含 Python/Java/Go 等 60+ 模板)


五、终极武器:全局忽略

永久屏蔽系统级垃圾文件:

创建全局规则文件:

echo ".DS_Store" >> ~/.gitignore_global

让 Git 启用它:

git config --global core.excludesfile ~/.gitignore_global

六、立即行动

  • 检查你的项目是否有 .gitignore
  • git check-ignore -v 文件名 测试规则
  • 删除已被误提交的垃圾文件(git rm --cached
  • 据统计:优化 .gitignore 可使仓库体积减小 70%+,git clone 速度提升 3 倍!
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐