Git 撤銷操作、刪除文件和恢復(fù)文件
大致介紹
經(jīng)過(guò)前面的學(xué)習(xí),已經(jīng)建立了版本庫(kù),并上傳了文件,這次來(lái)學(xué)習(xí)對(duì)這些文件進(jìn)行基本的操作,即:
◆ 撤銷操作
◆ 刪除文件
◆ 恢復(fù)文件
我在此之前,已經(jīng)將三個(gè)文件提交到了版本庫(kù)
撤銷操作
撤銷操作的語(yǔ)法:
git checkout -- 文件名
撤銷操作一般有兩種情況:
◆ 文件修改后還沒(méi)有提交到暫存區(qū),進(jìn)行撤銷操作之后,文件恢復(fù)到和版本庫(kù)中一模一樣
◆文件修改后提交到了暫存區(qū),進(jìn)行撤銷之后,文件恢復(fù)到在提交到暫存區(qū)之前的狀態(tài)
現(xiàn)在index.htm中的內(nèi)容是:
index.html
我們修改他的內(nèi)容為:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> </body> </html>
1、文件未提交到暫存區(qū)
用 git status 命令查看文件狀態(tài)
可以看到 index.html 修改了,但是還沒(méi)有提交到暫存庫(kù),我們對(duì)這個(gè)文件進(jìn)行撤銷操作
然后再打開(kāi) index.html 文件,就可以發(fā)現(xiàn),它就恢復(fù)到了和版本庫(kù)中一模一樣的狀態(tài)
2、文件提交到了暫存區(qū),但未提交到版本庫(kù)
用 git status 命令查看:
如果這個(gè)文件寫錯(cuò)了,想要修改,但是它已經(jīng)提交到了暫存區(qū)。所以先需要將它撤銷到工作區(qū)
git reset HEAD 文件名
寫入命令并查看文件狀態(tài)
可以看到,文件已經(jīng)撤銷到了工作區(qū),但是現(xiàn)在文件的內(nèi)容還沒(méi)有變化,如果想要恢復(fù)到修改之前的狀態(tài)就使用
git checkout -- 文件名
此時(shí),文件就和版本庫(kù)中的文件一模一樣了
刪除文件
新寫一個(gè)文件,并提交到暫存區(qū)
1、先刪除工作區(qū)中的文件,在刪除暫存區(qū)的文件
要先刪除工作區(qū)中的文件,有兩種方式:
◆ 只在文件夾中刪除
◆用命令行
rm 文件名
刪除工作區(qū)的文件后,查看文件狀態(tài):
可以看到,工作區(qū)中的 game.js 刪除了,但是暫存區(qū)中的 game.js 還未刪除
刪除暫存區(qū)中的文件:
git rm 文件名
如圖:
這樣就將兩個(gè)去的文件都刪除了
2、同時(shí)刪除工作區(qū)和暫存區(qū)中的文件
git rm -f 文件名
如圖:
3、刪除暫存區(qū)的文件,不刪除工作區(qū)的文件
git rm --cached 文件名
如圖:
恢復(fù)文件
如果我們想要恢復(fù)某個(gè)文件或者整個(gè)項(xiàng)目到之前的某個(gè)版本,Git提供了方便的操作
可以使用 git log 查看版本庫(kù)的信息
如圖:
如果想要將某個(gè)文件恢復(fù)到某個(gè)版本時(shí)的狀態(tài),可以使用以下的命令:
git checkout id 文件名
其中的id是圖中框出來(lái)的,例如要將 index.html 文件恢復(fù)到 add three files 版本時(shí)的狀態(tài):
id可以不用全部復(fù)制過(guò)來(lái),復(fù)制一部分就可以了
如果要將所有的文件都恢復(fù)到某個(gè)版本,可以使用下面的命令
git reset --hard id
如圖:
除了用id恢復(fù)到某個(gè)版本庫(kù)時(shí)的狀態(tài),還有別的寫法:
//恢復(fù)到上一個(gè)版本 git reset --hard HEAD^ // 恢復(fù)到前兩個(gè)版本 git reset --hard HEAD~2
另外,可以用 git reflog 查看恢復(fù)的記錄
參考資料:
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
進(jìn)制轉(zhuǎn)換算法原理(二進(jìn)制 八進(jìn)制 十進(jìn)制 十六進(jìn)制)
進(jìn)制轉(zhuǎn)換算法原理(二進(jìn)制 八進(jìn)制 十進(jìn)制 十六進(jìn)制),以前上學(xué)那會(huì)確實(shí)學(xué)過(guò),長(zhǎng)時(shí)間不用都忘了。2010-05-05Eclipse 格式化代碼時(shí)不換行與自動(dòng)換行的實(shí)現(xiàn)方法
每次用Eclipse自帶的Ctrl+shift+f格式化代碼時(shí),如果原來(lái)的一行代碼大于80列,Eclipse就會(huì)自動(dòng)換為多行,這點(diǎn)個(gè)人感覺(jué)不是很舒服,簡(jiǎn)單試了一下,通過(guò)以下方式可以修改2009-05-05idea集成Git實(shí)現(xiàn)團(tuán)隊(duì)合作分工的原理詳解
這篇文章主要介紹了idea集成Git實(shí)現(xiàn)團(tuán)隊(duì)合作分工的原理,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-12-12