git忽略非代码的文件

以项目中的target文件夹为例

1. 检查 Git 是否跟踪了 target/

git ls-files --cached | grep target

如果是文件类型:

git ls-files --cached | grep '\.iml$'

如果没有任何输出,说明 target/ 目录已经 不在 Git 索引中,不需要执行 git rm -r --cached target/ 了。

如果 target/ 目录仍然被 Git 跟踪,执行以下命令来移除它:

git rm -r --cached target/

如果是 多模块项目,可以执行:

git rm -r --cached $(git ls-files --cached | grep target)

如果是文件类型

git rm --cached $(git ls-files --cached | grep '\.iml$')

2. 添加 .gitignore 规则

确保 .gitignore 文件中包含:

target/

或者:

**/target/

最后的.gitignore文件内容

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
*.iml
.idea/
.gitee
.git
**/target/


# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

批量删除已经被跟踪的文件

# 1. 删除所有 .iml 文件(仅从 Git 索引中移除,不影响本地)
git ls-files --cached | grep '\.iml$' | xargs git rm --cached

# 2. 删除所有 target 目录
git ls-files --cached | grep '/target/' | xargs git rm -r --cached

# 3. 删除 .idea 目录
git rm -r --cached .idea

# 4. 删除 .gitee 目录
git rm -r --cached .gitee

# 5. 删除 .git 目录
git rm -r --cached .git

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注