Git rm



git rm 命令用於從索引和工作樹中刪除特定檔案。透過這樣做,我們將檔案從專案中移除,並將其刪除操作暫存到下一次提交。

  • git rm 命令從 Git 索引以及(可選)工作目錄中刪除檔案。

  • 要僅從工作目錄中刪除檔案(不影響索引),請使用其他命令,例如 /bin/rm

  • 預設情況下,git rm 要求檔案與分支的最新提交匹配,使用 -f 選項強制刪除與最新提交不匹配的檔案。

  • 使用 git rm --cached 僅從索引中刪除檔案,將其保留在工作目錄中。

  • 啟用稀疏檢出後,git rm 僅影響稀疏檢出模式中的檔案。

語法

git rm <file>…
  • git rm 用於刪除由 <file> 指定的檔案。

  • 使用帶 -r 選項的目錄名可刪除目錄及其所有子目錄中的所有檔案。

  • 雖然 git rm 'd*' 只針對給定目錄中的檔案,但檔案萬用字元匹配跨越目錄邊界,允許 git rm 'd*' 刪除多個目錄中的檔案。

選項

git rm 命令具有以下選項:

-f

--force

git rm -f <file>…
  • 使用 git rm 時,-f--force 選項會覆蓋預設檢查,該檢查在刪除之前驗證檔案是否為最新狀態。

-n

--dry-run

git rm -n <file>…
  • 使用 git rm 時,-n--dry-run 選項會模擬刪除過程,而無需實際刪除任何檔案。

  • 因為它顯示將從索引中刪除哪些檔案,所以您可以在執行實際刪除之前檢查更改。

-r

--recursive

git rm -r <directory-name>…
  • 當指定前導目錄名時,git rm 中的 -r 選項允許我們執行遞迴刪除,這將刪除目錄及其所有內容。

  • 如果不存在此選項,git rm 將只刪除檔案,而不會進入子目錄。

--

git rm -- <file>
  • 在 Git 中,可以使用 -- 選項將命令列引數與檔案或引數列表分開。

  • 這在檔名可能被誤解為命令列選項的情況下特別有用,因為它確保任何後續引數都被視為檔案路徑而不是選項。

--cached

git rm --cached <file>
  • 使用 git rm 時,可以使用 --cached 選項取消暫存檔案並僅從索引中刪除它們,而不會更改工作樹中的檔案。

  • 無論它們是否被更改,這些檔案都將從暫存區刪除,但會保留在我們的本地目錄中。

--ignore-unmatch

git rm --ignore-unmatch <file>
  • 當使用帶有 --ignore-unmatch 選項的 git rm 命令時,即使沒有檔案與提供的模式匹配,命令也會以零成功狀態終止。

  • 當找不到匹配要求的檔案時,這有助於防止指令碼或任務中的錯誤。

--sparse

git rm --sparse <file>
  • 對於稀疏檢出範圍之外的路徑,可以使用 git rm 中的 --sparse 選項修改索引條目。

  • 使用 --sparsegit rm 將更新索引,即使對於未包含在稀疏檢出配置中的檔案也是如此,而通常情況下,它會將更改限制在稀疏檢出範圍內的檔案中。

-q

--quiet

git rm -q <file>
  • 使用 git rm 時,-q--quiet 選項會抑制列出每個正在刪除檔案的標準輸出。

  • 選擇此選項時,程式會刪除檔案而不顯示每個檔案的詳細資訊。

  • 因此,終端輸出變得不那麼混亂。

使用 git rm 命令後,必須提交更改才能最終從儲存庫歷史記錄中刪除檔案。

此外,在檔案具有未提交的更改時,使用 git rm -f 命令時必須非常小心,因為使用此命令後,這些更改將丟失。

廣告