1. 程式人生 > >github之刪除檔案

github之刪除檔案

1. 前言

如果我們學習資料庫的話,我們要學的是什麼?——“增刪查改”。

如果我們學習WebAPI的話,我們要學的是什麼?——“增刪查改”。

那麼,如果我們學習github的話,我們要學的是什麼?沒錯——“增刪查改”。

在這一章中,我們將講解github中的刪除的部分命令操作。

2. Git rm命令

這時用來刪除檔案的命令,如同Linux裡的命令一樣。

$ git rm file1.txt

這個命令必須是在提交到版本庫中以後才能夠執行的,否則的話:

1 如果這個檔案沒有提交到暫存區,它是不會被發現的:

$ git rm file1.txt
fatal: pathspec 'file1.txt'
did not match any files

2 如果提交到暫存區了以後,還是沒辦法刪除:

$ git rm file1.txt
error: the following file has changes staged in the index:
    file1.txt
(use --cached to keep the file, or -f to force removal)

3 如果這個檔案與版本庫中不一致,就刪除不了,除非強制刪除,如下圖所示:

$ git rm index2.html
error: the following file has staged content different from
both the file and the HEAD: index2.html (use -f to force removal)

如果你只有一個檔案想要刪除,使用這個命令可以真正的從檔案系統中刪除了檔案,並且它會暫存這個檔案已經被刪除的事實,如果你提交了,這個檔案不會從之前的歷史中消失,但會從未來的提交中消失。

2.1 引數–cached

如果你想刪除這樣一個檔案,不想從檔案系統中真正的刪除它,就是用下面的命令:

$ git rm --cached file3.txt

換個說法,你想告訴Git,不再跟蹤這個檔案,但是把它保留在工作樹中,這可能是一種情況,你以外地提交了一個檔案,你並不想讓他成為歷史的一部分。它暫存了刪除,但是,他在那裡儲存了檔案,現在,在你的工作樹中,作為一個不被追蹤的檔案。

4. 小結

在這一章中,我們講解了如何刪除檔案的操作,當然還有像git ignore這種操作我們將會在另一講中講解。下一章我們將介紹git的檔案的修改,下章見。