git簡(jiǎn)明教程7-撤銷修改

??現(xiàn)在是凌晨?jī)牲c(diǎn)沮协,你正在趕一份工作報(bào)告谦铃,你在readme.txt中添加了一行:

$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
My stupid boss still prefers SVN.

??在你準(zhǔn)備提交前,你猛然發(fā)現(xiàn)了“stupid boss”可能會(huì)讓你丟掉這個(gè)月的獎(jiǎng)金赞厕!既然錯(cuò)誤發(fā)現(xiàn)得很及時(shí)艳狐,就可以很容易地糾正它。你可以刪掉最后一行皿桑,手動(dòng)把文件恢復(fù)到上一個(gè)版本的狀態(tài)毫目。如果用git status查看一下:

$ git status
# On branch master
# Changes not staged for commit:
#      (use "git add..." to update what will be committed)
#      (use "git checkout --..." to discard changes in working directory)
#
#               modified:  readme.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

你可以發(fā)現(xiàn)蔬啡,Git會(huì)告訴你,git checkout -- file可以丟棄工作區(qū)的修改:

$  git checkout --  readme.txt

??命令git checkout -- readme.txt意思就是镀虐,把readme.txt文件在工作區(qū)的修改全部撤銷箱蟆,這里有兩種情況:

一種是readme.txt自修改后還沒(méi)有被放到暫存區(qū),現(xiàn)在刮便,撤銷修改就回到和版本庫(kù)一模一樣的狀態(tài)空猜;
一種是readme.txt已經(jīng)添加到暫存區(qū)后,又作了修改恨旱,現(xiàn)在辈毯,撤銷修改就回到添加到暫存區(qū)后的狀態(tài)。

??總之搜贤,就是讓這個(gè)文件回到最近一次git commit或git add時(shí)的狀態(tài)∽晃郑現(xiàn)在,看看readme.txt的文件內(nèi)容:

$ cat readme.txt
Git is a distributed  version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes.

文件內(nèi)容果然復(fù)原了仪芒。
??git checkout -- file命令中的--很重要管毙,沒(méi)有--,就變成了“切換到另一個(gè)分支”的命令桌硫,我們?cè)诤竺娴姆种Ч芾碇袝?huì)再次遇到git checkout命令。
??現(xiàn)在假定是凌晨3點(diǎn)啃炸,你不但寫(xiě)了一些胡話铆隘,還git add到暫存區(qū)了:

$ cat readme.txt
Gitis a distributed version control system.
Gitis free software distributed under theGPL.
Githas a mutable index called stage.
Gittracks changes of files.
Mystupid boss still prefersSVN.
$ git add readme.txt

??慶幸的是,在commit之前南用,你發(fā)現(xiàn)了這個(gè)問(wèn)題膀钠。用git status查看一下,修改只是添加到了暫存區(qū)裹虫,還沒(méi)有提交:

$ git status
# On branch master
# Changes to be committed:
#      (use "git reset HEAD..." to unstage)
#
#           modified:  readme.txt
#

??Git同樣告訴我們肿嘲,用命令git reset HEAD file可以把暫存區(qū)的修改撤銷掉(unstage),重新放回工作區(qū):

$ git reset HEAD readme.txt
Unstaged changes after reset:
M   readme.txt

??git reset命令既可以回退版本筑公,也可以把暫存區(qū)的修改回退到工作區(qū)雳窟。當(dāng)我們用HEAD時(shí),表示最新的版本匣屡。
再用git status查看一下封救,現(xiàn)在暫存區(qū)是干凈的,工作區(qū)有修改:

$ git status
# On branch master
# Changes not staged for commit:
#      (use "git add..." to update what will be committed)
#     (use "git checkout --..." to discard changes in working directory)
#
#           modified:  readme.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

還記得如何丟棄工作區(qū)的修改嗎捣作?

$ git checkout -- readme.txt
$ git status
# On branch master
nothing to commit (working directory clean)

??現(xiàn)在誉结,假設(shè)你不但改錯(cuò)了東西,還從暫存區(qū)提交到了版本庫(kù)券躁,怎么辦呢惩坑?還記得版本回退一節(jié)嗎掉盅?可以回退到上一個(gè)版本。不過(guò)以舒,這是有條件的趾痘,就是你還沒(méi)有把自己的本地版本庫(kù)推送到遠(yuǎn)程。還記得Git是分布式版本控制系統(tǒng)嗎稀轨?我們后面會(huì)講到遠(yuǎn)程版本庫(kù)扼脐,一旦你把“stupid boss”提交推送到遠(yuǎn)程版本庫(kù),你就真的慘了……

小結(jié)
場(chǎng)景1:當(dāng)你改亂了工作區(qū)某個(gè)文件的內(nèi)容奋刽,想直接丟棄工作區(qū)的修改時(shí)瓦侮,用命令git checkout -- file。
場(chǎng)景2:當(dāng)你不但改亂了工作區(qū)某個(gè)文件的內(nèi)容佣谐,還添加到了暫存區(qū)時(shí)肚吏,想丟棄修改,分兩步狭魂,第一步用命令git reset HEAD file罚攀,就回到了場(chǎng)景1,第二步按場(chǎng)景1操作雌澄。
場(chǎng)景3:已經(jīng)提交了不合適的修改到版本庫(kù)時(shí)斋泄,想要撤銷本次提交,參考版本回退一節(jié)镐牺,不過(guò)前提是沒(méi)有推送到遠(yuǎn)程庫(kù)炫掐。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市睬涧,隨后出現(xiàn)的幾起案子募胃,更是在濱河造成了極大的恐慌,老刑警劉巖畦浓,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痹束,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡讶请,警方通過(guò)查閱死者的電腦和手機(jī)祷嘶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)秽梅,“玉大人抹蚀,你說(shuō)我怎么就攤上這事∑罂眩” “怎么了环壤?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)钞诡。 經(jīng)常有香客問(wèn)我郑现,道長(zhǎng)湃崩,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任接箫,我火速辦了婚禮攒读,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辛友。我一直安慰自己薄扁,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布废累。 她就那樣靜靜地躺著邓梅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪邑滨。 梳的紋絲不亂的頭發(fā)上日缨,一...
    開(kāi)封第一講書(shū)人閱讀 52,328評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音掖看,去河邊找鬼匣距。 笑死,一個(gè)胖子當(dāng)著我的面吹牛哎壳,可吹牛的內(nèi)容都是我干的毅待。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼归榕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼恩静!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起蹲坷,我...
    開(kāi)封第一講書(shū)人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎邑飒,沒(méi)想到半個(gè)月后循签,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡疙咸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年县匠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撒轮。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乞旦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出题山,到底是詐尸還是另有隱情兰粉,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布顶瞳,位于F島的核電站玖姑,受9級(jí)特大地震影響愕秫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜焰络,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一戴甩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧闪彼,春花似錦甜孤、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至郊尝,卻和暖如春二跋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背流昏。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工扎即, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人况凉。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓谚鄙,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親刁绒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子闷营,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 安裝Git Git的下載地址:Git官網(wǎng)下載地址 Git本地倉(cāng)庫(kù)和命令 配置用戶 下載完Git后,右鍵會(huì)有一個(gè)Gi...
    TokyoZ閱讀 4,510評(píng)論 1 7
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git知市,從https:/...
    落魂灬閱讀 12,668評(píng)論 4 54
  • (預(yù)警:因?yàn)樵敿?xì)傻盟,所以行文有些長(zhǎng),新手邊看邊操作效果出乎你的預(yù)料) 一:Git是什么嫂丙? Git是目前世界上最先進(jìn)的...
    axiaochao閱讀 1,938評(píng)論 1 8
  • 婚后的某一天,酒紅閑著無(wú)聊隅肥,便去皇家的花園玩耍竿奏。穆華儀在管理財(cái)政,最親的元覺(jué)姐姐在管理作戰(zhàn)事情腥放,歐陽(yáng)兩姐妹都去了大...
    白發(fā)公主閱讀 190評(píng)論 0 0
  • 我們一生有很多時(shí)刻泛啸,只能自己默不作聲地扛過(guò)去。 深夜負(fù)能量到懷疑人生秃症,白天卻能像個(gè)傻子般笑嘻嘻活著平痰,也許汞舱,這就是生...
    喬巖憶夢(mèng)閱讀 186評(píng)論 0 0