生活随笔
收集整理的這篇文章主要介紹了
Git之撤销修改
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
自然,你是不會(huì)犯錯(cuò)的。不過現(xiàn)在是凌晨兩點(diǎn),你正在趕一份工作報(bào)告,你在readme.txt中添加了一行
在你準(zhǔn)備提交前,一杯咖啡起了作用,你猛然發(fā)現(xiàn)了“stupid boss”可能會(huì)讓你丟掉這個(gè)月的獎(jiǎng)金!
既然錯(cuò)誤發(fā)現(xiàn)得很及時(shí),就可以很容易地糾正它。你可以刪掉最后一行,手動(dòng)把文件恢復(fù)到上一個(gè)版本的狀態(tài)。如果用git status查看一下
你可以發(fā)現(xiàn)”git checkout – file”可以丟棄工作區(qū)的修改
命令git checkout – readme.txt意思就是,把readme.txt文件在工作區(qū)的修改全部撤銷,這里有兩種情況:
- 一種是readme.txt自修改后還沒有被放到暫存區(qū),現(xiàn)在,撤銷修改就回到和版本庫一模一樣的狀態(tài)(也就是因?yàn)檫€沒add,所以會(huì)回到上一次commit的狀態(tài))
-一種是readme.txt在被添加到暫存區(qū)之后作了修改,現(xiàn)在撤銷修改就會(huì)回到添加到暫存區(qū)后的狀態(tài)(已經(jīng)被add,所以會(huì)回到上一次add的狀態(tài))
總之,就是讓這個(gè)文件回到最近一次git commit或git add時(shí)的狀態(tài)。
現(xiàn)在,看看readme.txt的文件內(nèi)容
文件內(nèi)容果然復(fù)原了
git checkout – file命令中的–很重要,沒有–,就變成了“切換到另一個(gè)分支”的命令,我們?cè)诤竺娴姆种Ч芾碇袝?huì)再次遇到git checkout命令
現(xiàn)在假定是凌晨3點(diǎn),你不但寫了一些胡話,還git add到暫存區(qū)了
慶幸的是,在commit之前,你發(fā)現(xiàn)了這個(gè)問題。用git status查看一下,修改只是添加到了暫存區(qū),還沒有提交
Git同樣告訴我們,用命令“git reset HEAD file可以把暫存區(qū)的修改撤銷掉(unstage),重新放回工作區(qū)
git reset命令既可以回退版本,也可以把暫存區(qū)的修改回退到工作區(qū)。當(dāng)我們用HEAD時(shí),表示最新的版本
再用git status查看一下,現(xiàn)在暫存區(qū)是干凈的,工作區(qū)有修改
還記得如何丟棄工作區(qū)的修改嗎?
整個(gè)世界終于清靜了!
總結(jié):
- 當(dāng)你改亂了工作區(qū)某個(gè)文件的內(nèi)容,想直接丟棄工作區(qū)的修改時(shí),用命令git checkout – file
- 當(dāng)你不但改亂了工作區(qū)某個(gè)文件的內(nèi)容,還添加到了暫存區(qū)時(shí),想丟棄修改,分兩步,第一步用命令git reset HEAD file,就回到了場景1,第二步按場景1操作
- 已經(jīng)提交了不合適的修改到版本庫時(shí),想要撤銷本次提交,參考版本回退一節(jié),不過前提是沒有推送到遠(yuǎn)程庫
總結(jié)
以上是生活随笔為你收集整理的Git之撤销修改的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。