每次ref="/tag/245/" style="color:#B2A89E;font-weight:bold;">提交代码,总有些文件不该进仓库,比如本地配置、日志、node_modules。手一滑提交了,后悔都来不及。其实.gitignore就是干这个的,用好了省心又高效。
什么是 .gitignore
.gitignore 是一个文本文件,放在项目根目录下,告诉 Git 哪些文件或目录不用跟踪。比如你开发时生成的缓存文件、IDE 自动生成的配置,通通可以列进去,Git 就不会再提示你提交它们。
基本写法很简单
每一行写一个规则,支持通配符。常见写法:
# 忽略所有 .log 文件
*.log
# 忽略某个具体文件
config.local.js
# 忽略整个目录
dist/
node_modules/
# 但保留某个子文件(取反)
!important.log
以 # 开头是注释,* 匹配任意字符,/ 表示目录。比如 node_modules/ 能避免误提交庞大的依赖包,这在团队协作中特别关键。
实际场景举例
你在做前端项目,跑完 npm install 后多了几万个 node_modules 文件,Git 列表瞬间爆炸。这时候如果没写 .gitignore,拉代码的人还得手动删,效率极低。提前加一行 node_modules/,问题彻底解决。
再比如后端项目,数据库密码写在 .env 文件里。这种敏感信息绝不能提交,但每个人本地都有。直接在 .gitignore 里加上 .env,谁都不会不小心传上去。
全局忽略更省事
有些文件每个项目都不想管,比如 macOS 的 .DS_Store 或编辑器的 .vscode/settings.json。可以设置全局 .gitignore:
git config --global core.excludesfile ~/.gitignore_global
然后在 ~/.gitignore_global 里写通用规则,一劳永逸。
已经提交了怎么办
有时候文件已经被跟踪了,再加到 .gitignore 也没用,Git 还是会管它。这时候得先取消跟踪:
git rm -r --cached node_modules
执行后文件保留在本地,但不再被 Git 管理。再提交一次,仓库就干净了。
小细节:.gitignore 本身要提交进仓库,这样团队成员都能共享规则,避免各自踩坑。