GIT撤銷修改 restore

撤銷修改

GIT 撤銷修改蚌父,主要利用 git restore 命令。現(xiàn)在结缚,我們來假象一個使用場景。當我們大半夜戰(zhàn)至性頭時软棺,一上頭不小心在文件中寫了句不該寫的話"老板是個大煞筆"红竭!并且已經(jīng) git add 到暫存區(qū)(staged) 中了!如果再繼續(xù)commit 的話喘落,第二天就面臨失業(yè)的風險茵宪!

$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   READEME.md

從上面可以看到,有一個待提交文件瘦棋,并且還有一個重要的提示:use "git restore --staged <file>..." to unstage 稀火,翻譯過來就是,使用 git restore --staged <file>... 可以使文件變成已修改(未執(zhí)行 add 時 )狀態(tài)赌朋。
好的憾股,是時候展現(xiàn)真正的技術了,命令敲起來ヾ(???ゞ):

$ git restore --staged READEME.md
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   READEME.md

當我們執(zhí)行 store --staged 命令后箕慧,再用 status 查看狀態(tài),會發(fā)現(xiàn)茴恰,文件已經(jīng)變成 add 執(zhí)行前的狀態(tài)了颠焦。是的,這樣咱們就徹底保住了工作⊥妫現(xiàn)在劃重點伐庭,我們看下執(zhí)行 git restore --staged READEME.md 到底發(fā)生了什么。

git restore --staged [file] : 表示從暫存區(qū)將文件的狀態(tài)修改成 unstage 狀態(tài)分冈。當然圾另,也可以不指定確切的文件 ,例如:
git restore --staged *.java 表示將所有暫存區(qū)的java文件恢復狀態(tài)
git restore --staged . 表示將當前目錄所有暫存區(qū)文件恢復狀態(tài)
--staged 參數(shù)就是表示僅僅恢復暫存區(qū)的

問題總結接踵而至雕沉,如果我不們不止執(zhí)行了 add 命令集乔,還執(zhí)行了 commit 命令。是不是也可以利用 restore 命令返回呢坡椒?答案是肯定的扰路。下面,我們介紹幾個命令倔叼。

image.png

可以看到汗唱,我我們又有錯別字了,但是已經(jīng) commit 了丈攒,那么應該怎么辦呢哩罪?

$ git restore -s HEAD~1 READEME.md  // 該命名表示將版本回退到當前快照的前一個版本
$ git restore -s 91410eb9  READEME.md  // 改命令指定明確的 commit id 授霸,回退到指定的快照中
$ git reset --soft HEAD^  // 該命令表示撤銷 commit 至上一次 commit 的版本

總結

本篇文章的所有重點都集中在一個命令上 restore ,該命令主要有三個參數(shù)际插,我重點介紹一下碘耳,restore 命令,默認是帶著 --worktree 參數(shù)的

命令 作用 備注
git restore --worktree README.md 表示撤銷 README.md 文件工作區(qū)的的修改 參數(shù)等同于 -W
git restore --staged README.md 表示撤銷暫存區(qū)的修改腹鹉,將文件狀態(tài)恢復到未 add 之前 參數(shù)等同于 -S
git restore -s HEAD~1 README.md 表示將當前工作區(qū)切換到上個 commit 版本
git restore -s dbv213 README.md 表示將當前工作區(qū)切換到指定 commit id 的版本
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末藏畅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子功咒,更是在濱河造成了極大的恐慌愉阎,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件力奋,死亡現(xiàn)場離奇詭異榜旦,居然都是意外死亡,警方通過查閱死者的電腦和手機景殷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門溅呢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人猿挚,你說我怎么就攤上這事咐旧。” “怎么了绩蜻?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵铣墨,是天一觀的道長。 經(jīng)常有香客問我办绝,道長伊约,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任孕蝉,我火速辦了婚禮屡律,結果婚禮上,老公的妹妹穿的比我還像新娘降淮。我一直安慰自己超埋,他們只是感情好,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布佳鳖。 她就那樣靜靜地躺著纳本,像睡著了一般。 火紅的嫁衣襯著肌膚如雪腋颠。 梳的紋絲不亂的頭發(fā)上繁成,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機與錄音淑玫,去河邊找鬼巾腕。 笑死面睛,一個胖子當著我的面吹牛,可吹牛的內容都是我干的尊搬。 我是一名探鬼主播叁鉴,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼佛寿!你這毒婦竟也來了幌墓?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤冀泻,失蹤者是張志新(化名)和其女友劉穎常侣,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弹渔,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡胳施,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了肢专。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舞肆。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖博杖,靈堂內的尸體忽然破棺而出椿胯,到底是詐尸還是另有隱情,我是刑警寧澤剃根,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布压状,位于F島的核電站,受9級特大地震影響跟继,放射性物質發(fā)生泄漏。R本人自食惡果不足惜镣丑,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一舔糖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧莺匠,春花似錦金吗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至遥缕,卻和暖如春卫袒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背单匣。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工夕凝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宝穗,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓码秉,卻偏偏與公主長得像逮矛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子转砖,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內容

  • Git 是目前最流行的分布式版本控制系統(tǒng)之一须鼎。 版本控制指的是,記錄每次版本變更的內容和時間等細節(jié)府蔗,保留各版本之間...
    神齊閱讀 1,431評論 0 7
  • 其實使用git已經(jīng)有兩年多時間了晋控,但是對Git的概念一直懵懵懂懂,平時常用的命令就那么幾個礁竞,而且大部分的時候都是直...
    Claire_wu閱讀 605評論 0 5
  • 轉自:https://my.oschina.net/foreverich/blog/19215421. 如何創(chuàng)建一...
    逍遙無銘閱讀 574評論 0 0
  • 一糖荒、基本概念: 注:對于git的分布式概念及其優(yōu)點,不重復說明模捂,自己百度或谷歌捶朵。本文中涉及到指令前面有$的,在cm...
    大廠offer閱讀 1,431評論 0 3
  • 前言 Git使用教程 Git是什么 Git是一個開源的分布式版本控制系統(tǒng)狂男,用于敏捷高效地處理任何或小或大的項目综看。 ...
    90后的思維閱讀 912評論 0 0