如何從 Git 倉庫中刪除已提交的檔案?


Git 允許您使用以下任何一種方法從倉庫中刪除檔案:

  • 使用 Linux 的 rm 命令

  • 使用 git rm 命令

場景 1 - 使用 Linux rm 命令

Linux rm 命令的語法如下:

$ git rm <file_name>

假設倉庫中存在一個名為“file1.python”的檔案。使用 Linux rm 命令刪除檔案“file1.python”。

$ git rm file1.python

首先,讓我們驗證檔案是否已從工作目錄中刪除。這可以透過使用 Linux ls 命令來驗證。

$ ls

輸出表明檔案已從工作目錄中刪除。

dell@DESKTOP−N961NR5 MINGW64 /e/tut_repo (master)
$ Is

現在,讓我們驗證檔案是否也已從暫存區中刪除。

使用 git 命令 ls−files 來驗證。

$ git ls−files

上述程式碼的輸出為:

file1.python

從輸出中可以清楚地看到,該檔案尚未從暫存區中刪除。這意味著使用 Linux 命令執行的新增、重新命名或刪除檔案等更改不會自動暫存。此類更改應使用 git add 命令顯式暫存,然後提交。

$ git add file1.python

執行 ls−files 命令。操作的狀態也可以使用 git status 命令進行驗證。

$ git ls−files
$ git status

上述命令的輸出顯示在螢幕截圖中。

On branch master
Changes to be committed:
   (use “git restore --staged <file>...” to unstage)
      deleted:file1.python

該檔案已從暫存區中刪除。現在讓我們最終提交更改。

$ git commit -m ‘removed unused python file’

該檔案已永久從倉庫中刪除。請參閱下面的螢幕截圖以檢視輸出。

[master 81e32c4] removed unused python file
1 file changed, 2 deletions (-)
delete mode 100644 file1.python

場景 2 - 使用 git rm 命令

git rm 命令的語法如下:

git rm <file_name>

假設倉庫中存在一個名為“file1.js”的檔案,讓我們使用 git rm 命令刪除該檔案。

$ git rm file1.js

讓我們使用 git ls−files 命令來驗證檔案是否已從暫存區中刪除。

$ git ls−files

我們也可以使用 git status 命令來驗證檔案是否已從暫存區中刪除。

$ git status

從輸出中可以清楚地看到,使用 git rm 命令刪除的檔案會從工作區和暫存區中刪除。請參閱下面的螢幕截圖以檢視輸出。

On branch master
Changes to be committed:
   (use “git restore −−staged <file>...” to unstage)
      deleted:file1.js

現在讓我們提交更改並驗證輸出。

$ git commit −m ‘remove unused js file’

輸出表明該檔案已永久從倉庫中刪除。

[master dc7861e] removed unused js file
1 file changed, 1 deletion(−)
delete mode 100644 file1.js

更新於: 2021年2月20日

1K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告