智享百科屋
霓虹主题四 · 更硬核的阅读氛围

提交代码时忽略文件的正确姿势

发布时间:2025-12-21 10:41:41 阅读:175 次

在团队协作开发中,总有些文件不该被提交代码仓库里。比如本地的配置文件、编译生成的临时文件、IDE 自动生成的缓存目录。一不小心把它们推上去,轻则让同事拉代码时一脸懵,重则可能泄露敏感信息。

为什么需要忽略文件

举个例子,你用 VS Code 写代码,项目根目录下多了个 .vscode/settings.json,里面写着你的个人偏好设置。另一个用 Vim 的同事看到这个文件就头疼——这玩意儿跟他没关系,还容易在合并时产生冲突。更别说像 .env 这种存着数据库密码的文件,一旦上传,风险不小。

靠 .gitignore 来管住这些文件

Git 提供了 .gitignore 文件,专门用来声明哪些内容不需要纳入版本控制。只要把这个文件放在项目根目录,Git 就会自动跳过里面列出的路径。

比如你想忽略所有日志文件和 macOS 自动生成的 .DS_Store,可以这样写:

# 忽略所有 .log 结尾的文件
*.log

# 忽略系统隐藏文件
.DS_Store

# 忽略 node_modules 目录
node_modules/

# 忽略本地环境变量
.env
.env.local

每一行代表一个规则,# 开头的是注释。星号 * 是通配符,匹配任意字符。加个斜杠 / 表示整个目录。

不同层级的忽略策略

除了项目根目录下的 .gitignore,你还可以在子目录里放独立的 .gitignore,只对当前目录生效。另外,如果想忽略某个文件但又不想提交 .gitignore 变更,可以用 git update-index --assume-unchanged <file> 告诉 Git “假装没看见它”。

反过来,如果某个文件已经被跟踪了,后来才加入 .gitignore,那它依然会被继续监控。得先从缓存中移除:

git rm -r --cached node_modules/
git commit -m "Remove ignored files"

别忘了云存储场景下的特殊处理

现在很多项目部署在云端,CI/CD 流程会自动拉取代码构建。如果漏掉了关键的忽略规则,可能导致构建产物被反复提交,浪费存储空间。比如前端项目打包后的 dist 目录,本地测试时生成的 upload_test/ 临时文件夹,都应该提前屏蔽。

有些团队还会维护全局的 .gitignore 模板,比如针对 Python、Java 或 React 项目的通用规则,避免每次新建项目都从头写。

一个小小的 .gitignore,看似不起眼,却能省掉不少麻烦。就像出门前检查钥匙、手机、钱包一样,提交代码前扫一眼忽略列表,是每个开发者该有的习惯。