配置git ignore

针对 Java 项目(特别是使用 Eclipse 开发时),以下是整理好的 .gitignore 标准模板及配置说明。你可以直接将其内容复制到项目根目录下的 .gitignore 文件中。

  1. 推荐 .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 特定

HELP.md

!.mvn/wrapper/maven-wrapper.jar

!‌**/src/main/**‌/target/

!‌**/src/test/**‌/target/

Node.js (如果前端也在同一仓库)

node_modules/

npm-debug.log*

yarn-debug.log*

yarn-error.log*

  1. 关键分类解析

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 中排除实际使用的本地副本。

  1. 重要操作提示

已跟踪文件的处理‌:

如果某些文件(如 .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)进行微调。

相关推荐
Pniubi1 天前
HashMap的扩容和树化边界
java·开发语言
Mikko71 天前
用 Java 复刻了高中时在塞班上玩的「熔岩矿车」:纯 Swing、零依赖、没有一张图片,一个 jar 双击就能玩
java·游戏开发·swing
知了学历孙老师1 天前
小自考的校考和统考,出题方和难度差在哪
java·大数据·前端
Java爱好狂.1 天前
Java初学者如何一周速通SpringBoot!
java·spring boot·后端·spring·高并发·架构师·java面试
秋饼1 天前
LLM API密钥动态轮换实战:Spring Vault + Spring AI + 多Provider路由
java·ai·技术分享·后端开发
福兮说1 天前
JSON 格式正确,数据就可靠吗?我用一份自编配置检查类型与空值
java·前端·json
Demons_kirit1 天前
CTFHub 信息泄露通关笔记:Git泄露 Log - 教程
笔记·git·网络安全
紧跟先前的步伐1 天前
Go AI Agent 实战 03|Token、上下文窗口与模型调用成本
java·人工智能·golang
const_qiu1 天前
第四章 00:开篇 —— 从「会聊天」到「记得住、会干活、能协作」
java·开发语言·人工智能·python
Wang's Blog1 天前
Java 项目实战: 交友项目 - 个人资料管理的更新接口实现与坑
java·开发语言·交友