[轉]"git rm" 和 "rm" 的區別


用 git rm 來刪除文件,同時還會將這個刪除操作記錄下來

直觀的來講,git rm 刪除過的文件,執行 git commit -m "abc" 提交時,
會自動將刪除該文件的操作提交上去。

用 rm 來刪除文件,僅僅是刪除了物理文件,沒有將其從 git 的記錄中剔除。

對於用 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 狀態的,
也就是一種介於 “未改動” 和 “已提交過” 之間的狀態。

下面是測試圖:

一、git rm 與 rm 之間的區別

二、git add . 無法記錄 rm 刪除動作

三、git commit -m "abc" 無法提交 rm 刪除動作

四、git commit -am "abc" 中參數 a 的作用

原文來自:http://yang3wei.github.io/blog/2013/02/03/git-rm-he-rm-de-qu-bie/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM