移除文件
a.從磁盤和暫存區中同時刪除
要從 Git 中移除某個文件,就必須要從已跟蹤文件清單中移除(確切地說,是從暫存區域移除),然后提交。 可以用 git rm 命令完成此項工作,並連帶從工作目錄中刪除指定的文件,這樣以后就不會出現在未跟蹤文件清單中了。
結果:
Changes not staged for commit:
deleted: C.txt
如果刪除之前修改過並且已經放到暫存區域的話,則必須要用強制刪除選項 -f(譯注:即 force 的首字母)。 這是一種安全特性,用於防止誤刪還沒有添加到快照的數據,這樣的數據不能被 Git 恢復。
示例
- 新建文件 D.txt
echo 哈哈哈>D.txt
- 將D.txt添加到工作區
git add D.txt
- 刪除文件
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 \*~
該命令為刪除以 ~ 結尾的所有文件。