如何在团队项目中忽略个人文件:.gitignore、exclude 与全局忽略

在团队项目中,我们常常会写一些 只在自己机器上使用的工具脚本,例如本地调试脚本、个性化配置文件、IDE 的临时文件等等。

这些文件如果不小心被提交到远端仓库,就会给团队带来困扰:别人拉代码时会看到一堆无关文件,甚至可能覆盖别人的配置。

那么问题来了:
如何在团队协作中,优雅地忽略这些“个人文件”,既保证团队代码整洁,又不影响自己本地使用?

.gitignore:团队共享的忽略规则

最常见的做法就是使用 .gitignore 文件。

  • .gitignore 文件需要提交到仓库,适合 整个团队都不需要 的文件类型。
  • 常见的有:编译输出目录、日志文件、临时缓存文件等。

示例:

# 忽略编译文件
/build/
*.o
*.class
 
# 忽略日志
*.log
 
# 忽略临时文件
*.tmp
.DS_Store

⚠️ 注意:如果某个文件已经被 Git 跟踪过(已经提交到仓库),再加到 .gitignore 中是 无效的
必须先用 git rm --cached 移除追踪,才能真正忽略。

.git/info/exclude:本地专属忽略

有时候,你只想在本地忽略某些文件,但不希望影响团队。
这时可以用 .git/info/exclude 文件。

它和 .gitignore 语法完全一样,但作用范围仅限于你本地仓库,不会被提交。

例如:

nano .git/info/exclude

写入:

tools/my_local_script.sh
notes/private.txt

这样,这些文件就会被 你本地 Git 忽略,而团队成员完全不会受影响。

全局忽略:适用于所有项目的个人规则

如果你经常在不同项目中写类似的个人脚本,可以配置 全局 ignore 文件

首先告诉 Git 全局忽略文件的位置:

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

然后在 ~/.gitignore_global 中写入通用规则,例如:

# 忽略所有本地脚本
*.local.sh
*.private.py
 
# 忽略编辑器临时文件
.vscode/
.idea/

这样,你所有的 Git 项目都会遵循这些规则。

已经提交过的文件怎么办?

如果某些文件已经被提交过一次,仅靠 .gitignore 是不够的。
需要先把它们从版本控制中移除(但保留在本地磁盘)

git rm --cached tools/my_local_script.sh
git commit -m "remove local script from repo"

然后再配置 .gitignore.git/info/exclude,后续就不会再被提交。

总结

  • 团队通用的忽略文件:放在 .gitignore,并提交到仓库。
  • 个人本地的工具脚本:放在 .git/info/exclude,不提交。
  • 你所有项目都想忽略的文件:配置全局 ~/.gitignore_global

标题:如何在团队项目中忽略个人文件:.gitignore、exclude 与全局忽略
作者:LeonYew
日期:2025-08-20