git在本地倉庫直接使用rm徹底刪除檔案,服務端還是存在。(已解決)
阿新 • • 發佈:2019-02-14
原文地址: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命令。