Git如何忽略已加入的文件

 更新时间:2026年06月25日 10:42:46   作者:莫忘初心丶  
了解Git中 .gitignore不生效的原因及解决方法,掌握正确处理已提交文件的技巧,学习如何忽略整个目录及清理误提交文件

在使用 Git 的过程中,很多人都会遇到这样一个问题:

.gitignore 写好了,但文件还是被提交了?

这是因为——

  • .gitignore 只能忽略“未被 Git 跟踪的文件”
  • 已经 git add 或提交过的文件,不会自动生效

下面从原理 → 正确做法 → 常见场景 → 排坑技巧,一次讲清。

一、问题本质:为什么.gitignore不生效?

Git 中文件有两种状态:

  • 未跟踪(untracked).gitignore 生效
  • 已跟踪(tracked).gitignore 不生效

一旦执行过:

git add file
git commit

这个文件就进入了 Git 的索引(index),

之后再写 .gitignore,Git 会直接忽略你的忽略规则。

二、标准解决方案(最常用)

目标:

  • 保留本地文件
  • Git 不再跟踪
  • 以后也不会再被提交

Step 1:在.gitignore中添加规则

例如忽略 config.yaml

config.yaml

Step 2:从 Git 索引中移除(不删本地文件)

git rm --cached config.yaml

注意:

  • --cached 非常关键
  • 不会删除你磁盘上的文件

Step 3:提交修改

git commit -m "ignore config.yaml"

至此完成 ✅

三、忽略整个目录(日志 / 构建产物)

常见场景:

  • logs/
  • build/
  • dist/
  • node_modules/

.gitignore

logs/
build/

移除索引

git rm -r --cached logs build
git commit -m "ignore logs and build directories"

四、已经误加了一堆文件?一口气清理

如果已经:

  • 提交了 .env
  • 提交了本地配置
  • 提交了构建产物

可以用 重建索引法(慎用但非常有效):

git rm -r --cached .
git add .
git commit -m "reapply .gitignore rules"

这个命令做了什么?

  • 清空 Git 索引
  • 按新的 .gitignore 规则重新添加
  • 本地文件不会丢

五、只想自己忽略,不影响仓库?

有些文件不想提交,但也不想改 .gitignore(例如 IDE 配置):

使用本地忽略文件

.git/info/exclude

写法与 .gitignore 完全一致:

.idea/
.vscode/

特点:

  • ✅ 只对你本地生效
  • ❌ 不会提交到仓库

六、排坑神器:为什么这个文件没被忽略?

怀疑规则没生效时,用这个:

git check-ignore -v config.yaml

输出会提示:

  • 命中了哪条规则
  • 来自哪个 ignore 文件
  • 路径是否正确

这是 高级 Git 使用者必备命令

七、常见坑位汇总

现象原因
.gitignore 不生效文件已被跟踪
删了 .gitignore 仍被忽略.git/info/exclude 或全局 ignore
CI 还能看到文件已提交到历史
新同事 clone 后还有文件历史里已存在

八、如果文件已经进了 Git 历史(敏感信息)

.gitignore 无法删除历史记录

如果误提交了:

  • token
  • key
  • 密码
  • 内部配置

需要使用:

  • git filter-repo(推荐)
  • 或 BFG Repo Cleaner

并且:

  • 立刻作废旧密钥
  • 重新生成凭证

这是安全问题,不只是 Git 问题。

九、总结一句话

.gitignore 管未来,git rm --cached 处理过去

只要记住这一点,90% 的 Git 忽略问题都能解决。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Gitee的下载安装配置及使用步骤详解

    Gitee的下载安装配置及使用步骤详解

    这篇文章主要介绍了Gitee的下载安装配置及使用,本文通过详细步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Wordpress 忘记密码的处理方法

    Wordpress 忘记密码的处理方法

    有时候不小心忘了wordpress的密码了,大家可以按照下面的方法试试。
    2009-05-05
  • Git如何实现撤销提交(命令行+IDEA)

    Git如何实现撤销提交(命令行+IDEA)

    这篇文章主要介绍了Git如何实现撤销提交(命令行+IDEA)问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 关于Typora中latex的用法与常用语法

    关于Typora中latex的用法与常用语法

    这篇文章主要介绍了关于Typora中latex的用法与常用语法,typora使用latex进行公式的编写,本文说明了常用的语法,需要的朋友可以参考下
    2023-04-04
  • 提高编程技能的11个建议

    提高编程技能的11个建议

    当你不熟悉编程的时候,你可能会觉得无从下手,并且不知道如何运用学到的知识。只要你通过了这一困难的学习阶段,你就会发现一个全新的世界
    2014-08-08
  • 程序员喜欢的5款最佳代码比较工具

    程序员喜欢的5款最佳代码比较工具

    这篇文章主要介绍了程序员喜欢的5款最佳代码比较工具,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2020-06-06
  • 解决git误commit大文件导致不能push问题

    解决git误commit大文件导致不能push问题

    这篇文章主要介绍了解决git误commit大文件导致不能push问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • git ssh 配置多个账户的方法

    git ssh 配置多个账户的方法

    这篇文章主要介绍了git ssh 配置多个账户的方法,需要的朋友可以参考下
    2017-10-10
  • 低版本VS项目在VS2019无法正常编译的问题

    低版本VS项目在VS2019无法正常编译的问题

    这篇文章主要介绍了低版本VS项目在VS2019无法正常编译的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 提高代码可读性的十大注释技巧分享

    提高代码可读性的十大注释技巧分享

    这篇文章主要介绍了提高代码可读性的十大注释技巧,详细分析了编程开发中常用的代码注释方法,需要的朋友可以参考下
    2016-03-03

最新评论