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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM