git在本地倉庫直接使用rm徹底刪除文件,服務端還是存在

http://www.pizida.com/git-rm.html



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

$ sudo rm test
$ git add .
$ git commit -m "delete test"
$ git push origin

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

$ 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
只會處理已修改或者已刪除的文件,但是不會處理新建的文件

好了,執行以下命令:

$ git add -u
$ git commit -m "delete test"
$ git push

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章