git删除远程忽略文件并添加已忽略的文件到.gitignore

     最近做项目时发现,代码上传远程仓库之后把应该要忽略的文件或目录给push上去了(如.idea/,*.iml文件),

这时候去编辑project目录下的.gitignore文件并添加忽略已经不起作用了,因为.gitignore只对从来没有commit过的文件起作用。

那应该怎么处理呢?

     可以通过git命令从暂存区删除已提交的文件或目录(就是把本地缓存删除,改变成未track状态),操作示例如下:
      git rm -r --cached .idea/vcs.xml

     git rm --cached xxxx.iml

     或

     git rm -r --cached .idea

    接着修改.gitignore文件,并且commit 将修改后的暂存区合并到HEAD中,然后push的远端主机,命令如下:

    git commit -am "gitignore文件修改删除XXX文件"

       git push

 

备注:

    1、如果项目目录下没有.gitignore文件,就需要创建将.gitignore文件并加入git,并push到远程git库

     git add .gitignore  或 git commit -am "gitignore文件提交"

   2、常见的.gitignore文件内容含:

/target/
/.settings/
.classpath
.project
.idea/
*.iml

  等

   3、同时删除暂存区和工作区的文件

   git  rm -f xxx.iml 或git  rm xxx.iml

   4、错误提交到了版本库,需要回退到之前的某一版本时

       在这种情况下,只是删除了工作区和暂存区的文件,是不会修改远程库的。这个时候,需要撤销版本库的修改提交。可以使用git reset命令。

       git reset有三个选项,--hard、--mixed、--soft。

    //仅仅只是撤销已提交的版本库,不会修改暂存区和工作区
    git reset --soft 版本库ID
    //仅仅只是撤销已提交的版本库和暂存区,不会修改工作区
    git reset --mixed 版本库ID
    //彻底将工作区、暂存区和版本库记录恢复到指定的版本库
    git reset --hard 版本库ID

posted @   xuzhujack  阅读(1268)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2019-06-12 mysql MVCC原理理解
2019-06-12 Node.js和Chrome V8 引擎了解
;
点击右上角即可分享
微信分享提示