在Git中汗洒,刪除也是一個(gè)修改操作呆躲,我們實(shí)戰(zhàn)一下庭猩,先添加一個(gè)新文件test.txt到Git并且提交:
$ git add test.txt$ gitcommit-m"add test.txt"[master94cdc44]addtest.txt1file changed,1insertion(+)createmode100644test.txt
一般情況下叁征,你通常直接在文件管理器中把沒用的文件刪了码泞,或者用rm命令刪了:
$rm test.txt
這個(gè)時(shí)候谁榜,Git知道你刪除了文件幅聘,因此,工作區(qū)和版本庫就不一致了窃植,git status命令會(huì)立刻告訴你哪些文件被刪除了:
$git status# On branch master# Changes not staged for commit:#? (use "git add/rm ..." to update what will be committed)#? (use "git checkout -- ..." to discard changes in working directory)##? ? ? deleted:? ? test.txt#no changes added to commit (use"git add"and/or"git commit -a")
現(xiàn)在你有兩個(gè)選擇帝蒿,一是確實(shí)要從版本庫中刪除該文件,那就用命令git rm刪掉巷怜,并且git commit:
$ git rm test.txtrm 'test.txt'$ gitcommit-m"remove test.txt"[master d17efd8] remove test.txt1file changed,1deletion(-)deletemode100644test.txt
現(xiàn)在葛超,文件就從版本庫中被刪除了。
另一種情況是刪錯(cuò)了延塑,因?yàn)榘姹編炖镞€有呢绣张,所以可以很輕松地把誤刪的文件恢復(fù)到最新版本:
$git checkout -- test.txt
git checkout其實(shí)是用版本庫里的版本替換工作區(qū)的版本,無論工作區(qū)是修改還是刪除关带,都可以“一鍵還原”侥涵。
小結(jié)
命令git rm用于刪除一個(gè)文件。如果一個(gè)文件已經(jīng)被提交到版本庫,那么你永遠(yuǎn)不用擔(dān)心誤刪芜飘,但是要小心务豺,你只能恢復(fù)文件到最新版本,你會(huì)丟失最近一次提交后你修改的內(nèi)容