针对 Java 项目(特别是使用 Eclipse 开发时),以下是整理好的 .gitignore 标准模板及配置说明。你可以直接将其内容复制到项目根目录下的 .gitignore 文件中。
- 推荐 .gitignore 模板
gitignore
=======================
1. 编译产物 (Build Outputs)
=======================
*.class
*.jar
*.war
*.ear
*.nar
*.zip
*.tar.gz
*.rar
Maven 构建输出
/target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
.mvn/wrapper/maven-wrapper.jar
Gradle 构建输出
/build/
/.gradle/
gradle-app.setting
!gradle-wrapper.jar
=======================
2. IDE 配置文件 (Eclipse & Others)
=======================
Eclipse 核心元数据 (必须忽略,避免个人配置冲突)
.settings/
.classpath
.project
IntelliJ IDEA (如果团队混用 IDE,建议加上)
.idea/
*.iml
*.ipr
*.iws
out/
NetBeans
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
VS Code
.vscode/
=======================
3. 日志与临时文件 (Logs & Temp)
=======================
*.log
logs/
*.tmp
*.swp
*~
$RECYCLE.BIN/
Thumbs.db
.DS_Store
=======================
4. 敏感配置与环境变量 (Sensitive Configs)
=======================
本地开发配置,包含数据库密码等敏感信息,严禁提交
application-local.yml
application-dev.properties
.env
.env.local
*.key
*.pem
=======================
5. 其他常见忽略项
=======================
Spring Boot 特定
!.mvn/wrapper/maven-wrapper.jar
!‌**/src/main/**‌/target/
!‌**/src/test/**‌/target/
Node.js (如果前端也在同一仓库)
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
- 关键分类解析
A. Eclipse 专属忽略项
Eclipse 会在项目根目录生成以下文件,这些文件通常包含绝对路径或用户特定的偏好设置,提交后会导致团队成员间频繁冲突:
.settings/:存放编译器版本、编码格式等具体设置。
.classpath:定义项目的类路径依赖。
.project:定义项目名称和关联的 Nature(如 Java Nature)。
注意:虽然 .project 有时被用于识别项目类型,但在现代协作中,通常建议忽略它,或者仅保留最基础的名称定义而忽略具体构建器配置。大多数最佳实践建议直接忽略整个 .settings/ 目录和 .classpath。
B. 构建工具忽略项
Maven: 核心是 /target/ 目录,所有编译后的 class 文件、打包后的 jar/war 都在此生成。
Gradle: 核心是 /build/ 和 /.gradle/ 目录。
C. 敏感配置忽略项
切勿提交包含明文密码、密钥的文件,如 application-prod.yml、.env、*.key。
建议保留一个模板文件(如 application-example.yml 或 .env.example)供团队成员参考,并在 .gitignore 中排除实际使用的本地副本。
- 重要操作提示
已跟踪文件的处理:
如果某些文件(如 .classpath 或 target/ 下的文件)在创建 .gitignore 之前已经被 Git 跟踪(即已经执行过 git add),仅仅修改 .gitignore 不会生效。你需要先执行以下命令取消跟踪:
bash
取消单个文件的跟踪
git rm --cached .classpath
取消整个目录的跟踪
git rm -r --cached target/
然后提交更改
git commit -m "Stop tracking ignored files"
验证规则:
在终端中运行以下命令,检查某个文件是否被正确忽略:
bash
git check-ignore -v <文件名>
如果返回规则行,说明忽略生效;如果没有输出,说明该文件仍被 Git 跟踪或未匹配到规则。
全局忽略(可选):
对于操作系统生成的垃圾文件(如 .DS_Store, Thumbs.db),你可以配置全局忽略,避免在每个项目中重复添加:
bash
git config --global core.excludesfile ~/.gitignore_global
然后在 ~/.gitignore_global 中添加这些系统级规则。
这份模板覆盖了绝大多数 Java/Eclipse 项目的场景,可根据你具体使用的构建工具(Maven/Gradle)和框架(Spring Boot)进行微调。