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命令。