git 代碼回滾

??當(dāng)我們提交代碼中出現(xiàn)一些錯(cuò)誤時(shí)比如上傳了錯(cuò)誤代碼方咆,錯(cuò)誤提交穴亏,遺漏文件等等玫锋,這個(gè)時(shí)候代碼回滾的功效就顯露出來了挠乳,git reset权薯、git checkoutgit revert 是其中最有用的一些命令。它們都用來撤銷代碼倉庫中的某些更改欲侮,而前兩個(gè)命令不僅可以作用于提交崭闲,還可以作用于特定文件肋联。

Reset

??如果你的更改還沒有共享給別人威蕉,git reset 是撤銷這些更改的簡(jiǎn)單方法。當(dāng)你開發(fā)一個(gè)功能的時(shí)候發(fā)現(xiàn)「糟糕橄仍,我做了什么韧涨?我應(yīng)該重新來過!」時(shí)侮繁,reset 就像是 go-to 命令一樣虑粥。

#讓 hotfix 分支向后回退了兩個(gè)提交。
git checkout hotfix
git reset HEAD~2

??除了在當(dāng)前分支上操作宪哩,你還可以通過傳入這些標(biāo)記來修改你的緩存區(qū)或工作目錄:

  1. --soft – 緩存區(qū)和工作目錄都不會(huì)被改變
  2. --mixed – 默認(rèn)選項(xiàng)娩贷。緩存區(qū)和你指定的提交同步,但工作目錄不受影響
  3. --hard – 緩存區(qū)和工作目錄都同步到你指定的提交

??把這些標(biāo)記想成定義 git reset 操作的作用域就容易理解多了锁孟。
??這些標(biāo)記往往和 HEAD 作為參數(shù)一起使用彬祖。比如,git reset --mixed HEAD 將你當(dāng)前的改動(dòng)從緩存區(qū)中移除品抽,但是這些改動(dòng)還留在工作目錄中储笑。另一方面,如果你想完全舍棄你沒有提交的改動(dòng)圆恤,你可以使用 git reset --hard HEAD突倍。這是 git reset 最常用的兩種用法。

  • 當(dāng)你傳入 HEAD 以外的其他提交的時(shí)候要格外小心盆昙,因?yàn)?reset 操作會(huì)重寫當(dāng)前分支的歷史羽历。正如 rebase 黃金法則所說的,在公共分支上這樣做可能會(huì)引起嚴(yán)重的后果淡喜。

Checkout

??當(dāng)傳入分支名時(shí)秕磷,可以切換到那個(gè)分支。當(dāng)你移到一個(gè)新的分支拆火,然后更新工作目錄跳夭。但是因?yàn)檫@可能會(huì)覆蓋本地的修改涂圆,Git 會(huì)強(qiáng)制你提交或者緩存工作目錄中的所有更改,不然在 checkout 的時(shí)候這些更改都會(huì)丟失币叹。和 git reset 不一樣的是润歉,git checkout 沒有移動(dòng)這些分支。
??除此之外颈抚,你還可以傳入提交的引用來 checkout 到任意的提交踩衩。這和 checkout 到另一個(gè)分支是完全一樣的:把 HEAD 移動(dòng)到特定的提交。比如贩汉,下面這個(gè)命令會(huì) checkout 到當(dāng)前提交的祖父提交驱富。

git checkout HEAD~2

將HEAD移動(dòng)到任意commit
??這對(duì)于快速查看項(xiàng)目舊版本來說非常有用。但如果你當(dāng)前的 HEAD 沒有任何分支引用匹舞,那么這會(huì)造成 HEAD 分離褐鸥。這是非常危險(xiǎn)的,如果你接著添加新的提交赐稽,然后切換到別的分支之后就沒辦法回到之前添加的這些提交叫榕。因此,在為分離的 HEAD 添加新的提交的時(shí)候你應(yīng)該創(chuàng)建一個(gè)新的分支姊舵。

Revert

??Revert 撤銷一個(gè)提交的同時(shí)會(huì)創(chuàng)建一個(gè)新的提交晰绎。這是一個(gè)安全的方法,因?yàn)樗粫?huì)重寫提交歷史括丁。比如荞下,下面的命令會(huì)找出倒數(shù)第二個(gè)提交,然后創(chuàng)建一個(gè)新的提交來撤銷這些更改史飞,然后把這個(gè)提交加入項(xiàng)目中尖昏。

git checkout hotfix
git revert HEAD~2

??相比 git reset,它不會(huì)改變現(xiàn)在的提交歷史祸憋。因此会宪,git revert 可以用在公共分支上,git reset 應(yīng)該用在私有分支上蚯窥。

??你也可以把 git revert 當(dāng)作撤銷已經(jīng)提交的更改掸鹅,而 git reset HEAD 用來撤銷沒有提交的更改

??就像 git checkout 一樣拦赠,git revert 也有可能會(huì)重寫文件巍沙。所以,Git 會(huì)在你執(zhí)行 revert 之前要求你提交或者緩存你工作目錄中的更改荷鼠。

-參考
代碼回滾

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末句携,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子允乐,更是在濱河造成了極大的恐慌矮嫉,老刑警劉巖削咆,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蠢笋,居然都是意外死亡拨齐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門昨寞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瞻惋,“玉大人,你說我怎么就攤上這事援岩〖呃牵” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵享怀,是天一觀的道長(zhǎng)羽峰。 經(jīng)常有香客問我,道長(zhǎng)凹蜈,這世上最難降的妖魔是什么限寞? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮仰坦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘计雌。我一直安慰自己悄晃,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布凿滤。 她就那樣靜靜地躺著妈橄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪翁脆。 梳的紋絲不亂的頭發(fā)上眷蚓,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音反番,去河邊找鬼沙热。 笑死,一個(gè)胖子當(dāng)著我的面吹牛罢缸,可吹牛的內(nèi)容都是我干的篙贸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼枫疆,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼爵川!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起息楔,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤寝贡,失蹤者是張志新(化名)和其女友劉穎扒披,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體圃泡,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谎碍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了洞焙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蟆淀。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖澡匪,靈堂內(nèi)的尸體忽然破棺而出熔任,到底是詐尸還是另有隱情,我是刑警寧澤唁情,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布疑苔,位于F島的核電站,受9級(jí)特大地震影響甸鸟,放射性物質(zhì)發(fā)生泄漏惦费。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一抢韭、第九天 我趴在偏房一處隱蔽的房頂上張望薪贫。 院中可真熱鬧,春花似錦刻恭、人聲如沸瞧省。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鞍匾。三九已至,卻和暖如春骑科,著一層夾襖步出監(jiān)牢的瞬間橡淑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工咆爽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留梁棠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓伍掀,卻偏偏與公主長(zhǎng)得像掰茶,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蜜笤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

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