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 @ 2021-06-12 16:28  xuzhujack  阅读(1196)  评论(0编辑  收藏  举报
;