git之移除文件


移除文件

a.從磁盤和暫存區中同時刪除

要從 Git 中移除某個文件,就必須要從已跟蹤文件清單中移除(確切地說,是從暫存區域移除),然后提交。 可以用 git rm 命令完成此項工作,並連帶從工作目錄中刪除指定的文件,這樣以后就不會出現在未跟蹤文件清單中了。
結果:
Changes not staged for commit:
deleted: C.txt

如果刪除之前修改過並且已經放到暫存區域的話,則必須要用強制刪除選項 -f(譯注:即 force 的首字母)。 這是一種安全特性,用於防止誤刪還沒有添加到快照的數據,這樣的數據不能被 Git 恢復。
示例

  1. 新建文件 D.txt          echo 哈哈哈>D.txt
  2. 將D.txt添加到工作區   git add D.txt
  3. 刪除文件 git rm D.txt
    發生錯誤 :
    error: the following file has changes staged in the index:
    D.txt
    (use --cached to keep the file, or -f to force removal)
    4.使用 git rm -f D.txt 進行刪除

b.把文件從 Git 倉庫中刪除(亦即從暫存區域移除),但仍然希望保留在當前工作目錄中。 換句話說,你想讓文件保留在磁盤,但是並不想讓 Git 繼續跟蹤

為達到這一目的,使用 --cached 選項:
$ git rm --cached README
git rm 命令后面可以列出文件或者目錄的名字,也可以使用 glob 模式。 比方說:
$ git rm log/\*.log

注意到星號 * 之前的反斜杠 \, 因為 Git 有它自己的文件模式擴展匹配方式,所以我們不用 shell 來幫忙展開。 此命令刪除 log/ 目錄下擴展名為 .log 的所有文件。 類似的比如:
$ git rm \*~
該命令為刪除以 ~ 結尾的所有文件。


免責聲明!

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



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