Git刪除指定檔案

admin發表於2018-07-26

文字介紹一下如何利用git刪除檔案。

一.使用linux命令rm刪除:

在當前工作區有檔案readme.txt,並被git跟蹤,且有提交歷史。執行如下命令:

[Shell] 純文字檢視 複製程式碼
$ rm readme.txt

檢視狀態截圖如下:

刪除後狀態截圖

分析如下:

(1).readme.txt檔案的狀態是被刪除。

(2).此時工作區中的檔案已經被刪除,

(3).Changes not staged for commit表明刪除檔案和新增檔案對Git來說都是一種改變,並沒有將此改變提交到暫存區。如果要切實在commit提交中也要刪除此檔案,那麼就要首先將此種改變提交暫存區:

[Shell] 純文字檢視 複製程式碼
$ git add readme.txt

然後完成此次提交:

[Shell] 純文字檢視 複製程式碼
$ git commit -m "delete readme"

二.使用git rm命令刪除:

通過純粹的linux命令刪除一個檔案需要三個步驟:

(1).rm 刪除檔案。

(2).將此種改變提交暫存區。

(3).最後進行commit提交。

使用git rm命令可以節省一步,程式碼如下:

[Shell] 純文字檢視 複製程式碼
$ git rm readme.txt

檢視一下此時狀態:

a:3:{s:3:\"pic\";s:43:\"portal/201807/26/010036vsxacxc0afsz10c0.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

分析如下:

(1).readme.txt處於deleted狀態。

(2).工作區中的檔案已經被刪除。

(3).Changes to be committed表明此刪除改變已經提交到暫存區,如果要切實在commit提交中也要刪除此檔案,就可以省略git add命令,直接commit提交即可。

[Shell] 純文字檢視 複製程式碼
$ git commit -m "delete readme"

三.使用--cached引數:

關於引數單橫槓還是雙橫槓可以參閱Git雙橫槓和單橫槓區別一章節。

前面的rm和git rm都會將工作區的檔案刪除,如果僅僅想讓檔案脫離Git的跟蹤,可以後面加--cached。

這樣工作區的檔案不會刪除,僅刪除暫存區中對應的檔案。

程式碼如下:

[Shell] 純文字檢視 複製程式碼
$ git rm readme.txt --cached
rm 'readme.txt'

檢視一下狀態:

a:3:{s:3:\"pic\";s:43:\"portal/201807/26/010150og1nn178i7qo9e9h.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

readme.txt處於未跟蹤狀態,也就是從暫存區刪除。

特別說明:處於未跟蹤狀態只是沒有存在於暫存區,歷史提交記錄中的記錄依然存在。

相關文章