之前我們講了文件的修改怠硼,本次我們將對(duì)文件的刪除和誤刪恢復(fù)操作進(jìn)行介紹鬼贱。
我在本地工作區(qū)中新增了幾個(gè)文件,我們通過ls -la命令來查看一下香璃。
此時(shí)这难,如果我想刪除file.txt文件,直接用rm <文件名>進(jìn)行刪除
此時(shí)姻乓,工作區(qū)的file.txt已經(jīng)被刪除。由于沒有添加到暫存區(qū)眯牧,也沒有提交到版本庫蹋岩,此次刪除無法恢復(fù)。
當(dāng)我們將文件提交到暫存區(qū)后学少,通過rm刪除沒用的文件剪个,會(huì)提示你最近添加和刪除的操作
如果你誤刪了file.txt,可以用git checkout -- <文件名>將暫存區(qū)中的file.txt恢復(fù)到本地工作區(qū)版确,此時(shí)本地暫存區(qū)將恢復(fù)到git add. 時(shí)的狀態(tài)扣囊。
但如果已經(jīng)將刪除后的文件提交到本地倉庫,誤刪的文件將無法通過git checkout恢復(fù)绒疗。
我們需通過上一篇的git reset版本回退來恢復(fù)誤刪的文件侵歇。但此時(shí)恢復(fù)的文件將是版本庫中的最新版本,之后所做的修改將無法恢復(fù)忌堂。
如果你將誤刪后的版本推送到了遠(yuǎn)程倉庫盒至,此時(shí)遠(yuǎn)程倉庫中的文件也已被移出,想要恢復(fù)則需要如下操作:
查看版本信息士修,并回退到想要的版本
我們照之前的操作將file.txt添加到暫存區(qū)枷遂,然后提交到本地倉庫并推送至遠(yuǎn)程倉庫
這時(shí)棋嘲,提示我們需要先從遠(yuǎn)程倉庫拉取項(xiàng)目酒唉。
但在拉取遠(yuǎn)程倉庫時(shí)卻出現(xiàn)了問題。然后我又重新回到之前的版本沸移,這次我對(duì)file.txt文件直接進(jìn)行編輯痪伦。
重新提交到本地倉庫,并在推送到遠(yuǎn)程倉庫前拉取遠(yuǎn)程項(xiàng)目网沾,提示當(dāng)前版本與其他版本有沖突癞蚕,需要手動(dòng)合并。
又重新對(duì)file.txt進(jìn)行添加辉哥、提交等操作
此時(shí)修改后的file.txt被成功提交到遠(yuǎn)程倉庫醋旦。
注:由于遠(yuǎn)程倉庫中已是刪除file.txt后的版本恒水,所以在版本回退后,如果直接進(jìn)行添加等操作饲齐,刪除的文件還是會(huì)在拉取時(shí)被移除钉凌。