1. 程式人生 > >git在本地倉庫直接使用rm徹底刪除檔案,服務端還是存在。(已解決)

git在本地倉庫直接使用rm徹底刪除檔案,服務端還是存在。(已解決)

原文地址:http://www.pizida.com/git-rm.html

本地倉庫:A和B

伺服器:C

今天在本地倉庫A希望刪除一個檔案test,於是執行以下命令:

1 2 3 4 $ sudo rm test $ git add . $ git commit -m "delete test" $ git push origin

在本地倉庫檢查,的確沒有檔案test了。然後再次從伺服器拉下來看看,執行

1 $ git pull

test沒有啦。我以為成功了。

但是在另一個客戶端的本地倉庫B拉下來,發現test又出來了。看來我以為的不是我以為的。
後來自己查資料,發現:
git add 表示 add to index only files created or modified and not those deleted
git add 只將新建的

或者已更改的檔案新增到索引區。(不會新增刪除的檔案

但是我們現在是通過先rm的命令,那應該如何完成提交,並真正從服務端刪除呢:

git add -u
git add -u  這個命令的意思是 add to index only files modified or deleted and not those created
只會處理已修改或者已刪除的檔案,但是不會處理新建的檔案

好了,執行以下命令:

1 2 3 $ git add -u $ git commit -m "delete test" $ git push

這時候我們在本地git status發現,已經沒有了那些提交資訊。再去本地倉庫B看看,
test也沒有了!

總結:如果我們要徹底通過git刪除,分兩種方式,如果先執行rm 命令去刪除就可以使用本文的方法。
如果想通過git,可以使用git rm命令。