关键词 :Git 忽略、本地配置、Spring Boot、
.git/info/exclude、通配符**
🌟 引言
在 Spring Boot 多模块项目(尤其是 Monorepo 架构)中,开发者经常会遇到这样一个"小烦恼":
- 本地开发时,
application-dev.yml文件里存着数据库密码、本地端口、调试开关等个性化配置; - 这些文件 绝对不能提交到远程仓库;
- 但又 不想修改
.gitignore并提交,以免影响其他同事或 CI/CD 流程。
那么问题来了:
有没有一种方式,能让我只在自己电脑上忽略这些文件,且完全不影响团队?
答案是:有!而且 Git 官方早就为我们准备好了完美方案。
❌ 为什么不要直接改 .gitignore?
.gitignore 是一个 被版本控制的文件。一旦你把它加入 commit 并 push:
- 所有协作者都会继承这个规则;
- CI/CD 环境也会受到影响;
- 如果只是个人临时配置,这显然 过度共享 了。
尤其在企业级项目中,随意提交 .gitignore 可能会被 Code Review 拒绝,甚至违反安全规范。
✅ 正确姿势:使用 .git/info/exclude
🔍 什么是 .git/info/exclude?
这是 Git 内置的一个 本地忽略文件,位于:
bash
.git/info/exclude
它的特点非常明确:
| 特性 | 说明 |
|---|---|
| 作用范围 | 仅当前仓库、当前机器 |
| 是否被追踪 | ❌ 不会被 Git 跟踪,也不会被提交 |
| 功能等价 | 和 .gitignore 完全一样 |
| 适用场景 | 本地开发配置、临时文件、个人 IDE 设置等 |
💡 它就是为你"偷偷忽略某些文件"而生的!
🛠️ 实操步骤:三步搞定本地忽略
第一步:打开 exclude 文件
bash
vim .git/info/exclude
如果文件不存在,Git 会自动创建(或你手动新建即可)。
第二步:添加忽略规则(关键!)
gitignore
# 忽略所有子目录下的 application-dev.yml
**/application-dev.yml
✅ 注意:这里用的是
**,不是*!
* vs ** 的区别:
| 写法 | 匹配范围 | 示例 |
|---|---|---|
*/application-dev.yml |
仅匹配 一级子目录 | xxx-admin/application-dev.yml ✅xxx-admin/src/application-dev.yml ❌ |
**/application-dev.yml |
匹配 任意深度子目录 | 所有层级都 ✅ |
📌 强烈推荐使用
**/application-dev.yml,一劳永逸!
第三步:验证效果
bash
git status
如果配置成功:
- 所有
application-dev.yml文件将 不再出现在 Untracked Files 列表中; - 即使你修改了它,也不会被误
add或commit。
⚠️ 重要提醒:已被追踪的文件无法被 ignore!
如果你之前不小心把 application-dev.yml 提交过,那么:
bash
git ls-files | grep application-dev.yml
如果还能查到,说明 Git 正在追踪它 ,此时 .gitignore 或 exclude 完全无效!
❌ 错误做法(千万别做!):
bash
git rm --cached application-dev.yml
虽然能"取消追踪",但:
- 会生成一个删除文件的 commit;
- 推送到远程后,所有同事的该文件都会被删除;
- 违背了"只影响自己"的初衷!
✅ 正确应对:
- 如果文件从未提交过 :直接用
.git/info/exclude忽略即可; - 如果已经提交过 :建议联系团队,统一决定是否从历史中移除(通常不推荐),否则只能接受它被追踪的事实,避免修改内容。
🧩 其他忽略方式对比(附使用场景)
| 方式 | 路径 | 是否共享 | 适用场景 |
|---|---|---|---|
.gitignore |
项目根目录 | ✅ 是 | 团队通用忽略(如 target/, *.log) |
.git/info/exclude |
.git/info/exclude |
❌ 否 | 个人本地忽略(本文推荐) |
| 全局 ignore | ~/.gitignore_global |
❌ 否(但跨仓库) | 所有项目的通用本地忽略(如 .idea/) |
对于
application-dev.yml这类 纯个人、非通用 的配置,.git/info/exclude是唯一合理选择。
✅ 最终推荐配置(可直接复制)
gitignore
# macOS
.DS_Store
# IDE
.idea/
.vscode/
# Spring Boot 本地开发配置(仅本地忽略)
**/application-dev.yml
**/bootstrap-dev.yml
保存到 .git/info/exclude,从此告别误提交烦恼!
🎯 总结
| 目标 | 解决方案 |
|---|---|
| 本地忽略 dev 配置 | ✅ 使用 .git/info/exclude |
| 不影响团队 | ✅ 该文件不会被提交 |
| 支持多模块嵌套 | ✅ 用 **/ 通配任意层级 |
| 符合企业规范 | ✅ 零副作用,安全可靠 |
通过这一招,你既能安心本地开发,又不会给团队"挖坑",真正做到 优雅、专业、高效!
💬 欢迎留言讨论:你在项目中还遇到过哪些"想忽略又不敢改 .gitignore"的场景?欢迎分享你的解决方案!