git版本回退, github版本回退

本文作者:@Ryan Miao

本文鏈接:https://www.cnblogs.com/woshimrf/p/5702696.html

版權(quán)聲明:?本博客所有文章除特別聲明外,均采用?CC BY-NC-SA 3.0?許可協(xié)議。轉(zhuǎn)載請(qǐng)注明出處缘屹!

目錄

具體做法:

上周提交了更改,過(guò)了周末回來(lái)說(shuō)要撤銷上個(gè)story晴氨。于是,需要找到上周提交的版本,rollback回來(lái)。

git版本管理命令取逾,自從習(xí)慣使用管理工具之后就很少接觸了,當(dāng)突然尋找其他指令的時(shí)候就成漿糊了薇溃,ctrl+k只能順利的提交而無(wú)關(guān)管理菌赖。因此,工具簡(jiǎn)化操作卻弱化了技能沐序。就像前幾天聽到的BBC 6分鐘英語(yǔ)的一段對(duì)話琉用。

Rob說(shuō)他當(dāng)年在酒吧實(shí)習(xí),對(duì)錢的加減算法很熟悉很強(qiáng)策幼,因?yàn)槟菚r(shí)候計(jì)算機(jī)還沒(méi)有推廣邑时。

計(jì)算器的出現(xiàn)使人們放棄了自己計(jì)算的本領(lǐng)。有時(shí)候即便僅僅是簡(jiǎn)單的加減法也不愿用自己的腦袋計(jì)算了特姐。不說(shuō)好壞晶丘,自己的感覺(jué)非常糟糕,因?yàn)橛X(jué)得自己曾經(jīng)擁有的技能消退了而難過(guò)唐含。所以說(shuō)浅浮,加強(qiáng)自身而不完全依賴于外物還是很重要的。



# Attention

更多Git以及Github的用法捷枯,參閱[Github工作流的正確打開方式](http://www.cnblogs.com/woshimrf/p/git-workflow.html)


# 結(jié)論放開頭

- 不要在公共分支做reset, 不要修改公共分支的歷史?

- 使用revert不會(huì)改變歷史滚秩,只是增加一個(gè)版本


1.reset

幾個(gè)月前,我提交了一次更改淮捆,這個(gè)更改涉及幾十個(gè)文件郁油,提交到github,Jenkins build攀痊,然后health check 503 error桐腌。看著報(bào)錯(cuò)我毫無(wú)頭緒苟径,不明白health check究竟是因?yàn)榇a的哪部分造成的案站,這提醒我以后的錯(cuò)誤日志一定要詳細(xì)。但有一點(diǎn)是肯定的棘街,這次提交的更改有問(wèn)題蟆盐。既然上一次的代碼沒(méi)問(wèn)題,那就回退吧蹬碧。

我在本地舱禽,使用git reset current branch to here. 這是Intelij自帶的git管理工具,可以指定版本后恩沽,然后回退到指定版本誊稚。本質(zhì)上就是 git ?reset 版本號(hào)。

顯然罗心,這個(gè)指令就是將head指針后退了一下里伯,也就是說(shuō),當(dāng)前版本是落后的渤闷。而我從master的最新一次提交reset到倒數(shù)第二個(gè)疾瓮,那么我的當(dāng)前的版本比maser落后一次提交。

既然回退好了飒箭,需要merge到master上面狼电。對(duì)應(yīng)到github上就是pull request.然而蜒灰,當(dāng)我選擇pull request的時(shí)候顯示nothing.說(shuō)本次更改不用merge。也就是說(shuō)master的歷史中已經(jīng)包含了這個(gè)版本肩碟,所以不用merge强窖。

因此,如果想要合并分支削祈,那么要合并的分支必須比當(dāng)前分支的版本先進(jìn)翅溺。顯然,reset只能重置本地或者說(shuō)本分支的更改髓抑。那么咙崎,我如果想要mater回退,我必須提交一個(gè)比mater先進(jìn)而且內(nèi)容正好的是上一次提交的相反的修改吨拍。這就是revert干的事情褪猛。


2.revert

revert指定版本可以實(shí)現(xiàn)版本回退。這個(gè)不是像reset一樣指針回退密末,而是會(huì)創(chuàng)建一個(gè)新的提交握爷,而且將指定版本的修改逆過(guò)來(lái)。這樣严里,我們想回退的內(nèi)容被逆反修改過(guò)來(lái)了新啼,而且我們的版本比master先進(jìn)。這樣就可以直接提交了刹碾。



具體做法:

假設(shè)當(dāng)前git log為:

G1 - G2 - G3 - B1 - B2 - B3

?G1-G3 正確的燥撞,好的,但 ?B1-B3 需要丟棄迷帜。

如果這些log都是在本地分支物舒,那么可以使用reset:

$ git reset --hard HEAD~3

注釋:

B3?asHEAD,?B2?isHEAD~1,?B1?isHEAD~2. 好的 G3?isHEAD~3:

G1 - G2 - G3 - B1 - B2 - B3\\\\-- HEAD\\\------ HEAD~1\\---------- HEAD~2\-------------- HEAD~3

但是如果這些log提交已經(jīng)在遠(yuǎn)程分支了,那就只能使用revert:

$ git revert --no-commit HEAD~2^..HEAD

Or:

$ git revert --no-commit HEAD~3..HEAD

注釋:

--no-commit是說(shuō)雖然HEAD~2到HEAD的提交已經(jīng)被回滾了戏锹,但回滾的內(nèi)容會(huì)放在緩存區(qū)冠胯,需要stage后commit才能生效。

這里锦针,"start..end"的意思是不包含start荠察,包含end。

注意

1. Merge操作不能revert

2. 對(duì)于使用IDEA做開發(fā)的奈搜,推薦使用IDEA自帶的回退悉盆。查看log,然后點(diǎn)擊需要回退的文件馋吗,右鍵revert焕盟。

3. 回退要慎重,很容產(chǎn)生沖突宏粤。

參考

git代碼回滾:Reset脚翘、Checkout灼卢、Revert的選擇

Git - how to revert multiple recent commits


唯有不斷學(xué)習(xí)方能改變! --?Ryan Miao

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末堰怨,一起剝皮案震驚了整個(gè)濱河市芥玉,隨后出現(xiàn)的幾起案子蛇摸,更是在濱河造成了極大的恐慌备图,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赶袄,死亡現(xiàn)場(chǎng)離奇詭異揽涮,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)饿肺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門蒋困,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人敬辣,你說(shuō)我怎么就攤上這事雪标。” “怎么了溉跃?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵村刨,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我撰茎,道長(zhǎng)嵌牺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任龄糊,我火速辦了婚禮逆粹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘炫惩。我一直安慰自己僻弹,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布他嚷。 她就那樣靜靜地躺著蹋绽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪爸舒。 梳的紋絲不亂的頭發(fā)上蟋字,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音扭勉,去河邊找鬼鹊奖。 笑死,一個(gè)胖子當(dāng)著我的面吹牛涂炎,可吹牛的內(nèi)容都是我干的忠聚。 我是一名探鬼主播设哗,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼两蟀!你這毒婦竟也來(lái)了网梢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤赂毯,失蹤者是張志新(化名)和其女友劉穎战虏,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體党涕,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡烦感,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了膛堤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片手趣。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖肥荔,靈堂內(nèi)的尸體忽然破棺而出绿渣,到底是詐尸還是另有隱情,我是刑警寧澤燕耿,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布中符,位于F島的核電站,受9級(jí)特大地震影響缸棵,放射性物質(zhì)發(fā)生泄漏舟茶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一堵第、第九天 我趴在偏房一處隱蔽的房頂上張望吧凉。 院中可真熱鬧,春花似錦踏志、人聲如沸阀捅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)饲鄙。三九已至,卻和暖如春圆雁,著一層夾襖步出監(jiān)牢的瞬間忍级,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工伪朽, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留轴咱,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像朴肺,于是被迫代替她去往敵國(guó)和親窖剑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354