在工作區(qū)刪除
我們修改文件的時(shí)候,有時(shí)也會(huì)把文件給刪除掉。例如我們把test3.txt從工作區(qū)刪除。
image
這個(gè)時(shí)候我后悔了,想找回來(lái),怎么辦?如果你還沒(méi)提交到stage區(qū)(也沒(méi)提交到master區(qū))那就好辦,只需要使用git checkout test3.txt即可找回來(lái)了。如下圖:
image
從工作區(qū)刪除后提交到stage
我們從工作區(qū)刪除了文件后,肯定需要提交到版本庫(kù)管理。只需要執(zhí)行指令git rm 文件名。如下圖:
image
如上圖我們已經(jīng)成功刪除了test3.txt并提交到了stage。
從master去reset回到工作區(qū)
如果這個(gè)時(shí)候后悔刪掉的文件,已經(jīng)提交到了stage,還有辦法退回嗎?肯定有了,這個(gè)時(shí)候需要使用reset指令,如下圖:
image
是不是跟上次說(shuō)的版本退回有點(diǎn)像?對(duì),前面我們講過(guò)有個(gè)HEAD指針指向提交到master最新的版本,所以我們執(zhí)行g(shù)it reset –hard HEAD指令就是把HEAD指向的版本退回到stage和工作區(qū)。
理解了這個(gè)原理,即使刪除的文件提交到master我們也不用擔(dān)心,只需要reset到HEAD^就可以了。
小結(jié)
- git rm 文件名
- git chekcout 文件名
- reset命令行
- 對(duì)于刪除文件工作區(qū) -> stage,使用git rm指令;stage ->master,使用commit指令;從stage -> 工作區(qū),使用git checkout指令;從master -> 工作區(qū),使用指令git reset指令(同時(shí)也執(zhí)行了master -> stage)