.gitignore 如何忽略项目中所有的 bin 目录

在 .gitignore 里加一行 bin/ 即可忽略任意层级的 bin 目录。已被 Git 跟踪的 bin 目录要先 git rm -r --cached 移出索引再提交,否则忽略不生效。

最佳实践
应用程序模块协作插画

一句话回答:在仓库根目录的 .gitignore 中加一行 bin/——不带前导斜杠的规则匹配任意层级的 bin 目录(bin/、tools/bin/、src/bin/ 全部生效)。如果这些目录里已有文件被 Git 跟踪过,必须先 git rm -r --cached 把它们移出索引,否则 gitignore 对已跟踪文件无效。

配置步骤

1. 编辑 .gitignore

# 忽略所有层级的 bin 目录
bin/

规则相对于所在 .gitignore 的目录生效,下例假设该文件在仓库根目录。语法要点:

  • bin/——忽略所有名为 bin 的目录(任意层级)
  • /bin/——只忽略仓库根目录的 bin(子目录里的 bin 不受影响)
  • **/bin/——与 bin/ 等价(显式写法)

2. 清理已跟踪的文件

git rm -r --cached bin/            # 根目录的 bin
git rm -r --cached tools/bin/      # 其他层级的 bin(逐个处理)

--cached 只移出 Git 索引,执行者本地文件保留;提交会记录仓库删除,其他协作者拉取时可能删除其此前跟踪的文件,先确认这里确实是可重建产物。

3. 提交

git add .gitignore
git commit -m "chore: 忽略所有 bin 目录"

此后 bin 目录的新改动不再出现在 git status 里。

验证是否生效

git check-ignore -v tools/bin/app.exe
# .gitignore:1:bin/    tools/bin/app.exe   ← 显示命中的规则与行号

git status --ignored 可以直接看到哪些文件被忽略了。

例外需求:保留某个 bin

bin/
!scripts/bin/        # 但 scripts/bin 例外,继续跟踪

! 是反选规则,放在忽略规则之后生效。

常见问题(FAQ)

Q:规则写了但 bin 里的文件改动还是出现在 status 里?

A:这些文件已被跟踪,gitignore 只对"未跟踪"文件生效。按第二步 git rm -r --cached 清理索引后提交即可。

Q:bin/ 和 bin(不带斜杠)有区别吗?

A:有。bin/ 只匹配目录;bin 同时匹配名为 bin 的文件和目录。要忽略目录写 bin/ 更精确。

Q:团队成员都要各自配置吗?

A:不用。.gitignore 提交进仓库后所有人共享——这正是它比 .git/info/exclude(纯本地)好的地方。

核查依据

本文依据官方文档核对,示例未在实际业务环境运行;上线前请按部署版本、权限与数据范围验证。


延伸阅读

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台