Git清空暫存區

admin發表於2018-08-01

在實際應用中可能需要刪除暫存區中的指定檔案,甚至清空暫存區。

下面就通過程式碼分別介紹一下它的實現過程,首先看一段程式碼:

[Shell] 純文字檢視 複製程式碼
$ git status

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201808/01/002004cgrl2pdpt0serkty.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

當前暫存區有兩個檔案antzone.txt和readme.txt。

一.刪除暫存區指定檔案:

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

將暫存區中的內容刪除,工作區中對應的檔案並不會受到影響。

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

不但將暫存區中的內容刪除,並且工作區中對應的檔案也會被刪除。

上面兩個命令如果要刪除多個檔案使用空格分隔檔名稱即可。

二.清空暫存區:

如果理解暫存區的實質,那麼實現此功能非常簡單,具體參閱Git暫存區深入理解一章節。

我們知道,所謂暫存區實質是.git目錄下的index檔案,只要將此檔案刪除,那麼就可以認為暫存區被清空。

當前專案狀態如下:

a:3:{s:3:\"pic\";s:43:\"portal/201808/01/002146muc557g0zw5g5zca.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

清空暫存區,其實就是刪除.git目錄下的index檔案,程式碼如下:

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

現在檢視專案狀態,截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201808/01/002300khhlnh494c0nf0hg.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

原來暫存區的兩個檔案,現在處於未跟蹤狀態。

相關文章