這是一個比較膚淺的問題,但對於 git 初學者來說,還是有必要提一下的。
用 git rm
來刪除檔案,同時還會將這個刪除操作記錄下來;
用 rm
來刪除檔案,僅僅是刪除了物理檔案,沒有將其從 git 的記錄中剔除。
直觀的來講,git rm
刪除過的檔案,執行 git commit -m "abc"
提交時,
會自動將刪除該檔案的操作提交上去。
而對於用 rm
命令直接刪除的檔案,執行 git commit -m "abc"
提交時,
則不會將刪除該檔案的操作提交上去。
不過不要緊,即使你已經通過 rm
將某個檔案刪除掉了,
也可以再通過 git rm
命令重新將該檔案從 git 的記錄中刪除掉,
這樣的話,在執行 git commit -m "abc"
以後,也能將這個刪除操作提交上去。
如果之前不小心用 rm
命令刪除了一大批檔案呢?
是的,此時用 git rm
逐個地再刪除一次就顯得相當蛋疼了。
所幸還有更方便的處理方案,用如下的方式做提交就沒有問題了: git commit -am "abc"
總結一下:
在被 git 管理的目錄中刪除檔案時,可以選擇如下兩種方式來記錄刪除動作:
一、rm
+ git commit -am "abc"
二、git rm
+ git commit -m "abc"
另外,git add .
僅能記錄新增、改動的動作,刪除的動作需靠 git rm
來完成。
最後,rm
刪除的檔案是處於 not staged
狀態的,
也就是一種介於 “未改動” 和 “已提交過” 之間的狀態。