記錄一次 git 回滾的坑爹體驗

Git 如何遺棄已經(jīng) push 的提交抚垃,處理方法應(yīng)該更新到文章:Git 如何遺棄已經(jīng) Push 的提交

以下是原文:

最近也是終于開啟了代碼編寫之旅琢感,我只能默默地說一句玩裙,寫代碼的感覺叹哭,簡直不能再爽勤揩!

不過也由于 git 的分支管理蛋疼懵逼很久俗批,所以必須記錄以及和大家分享一下本次坑爹的旅行俗或。

寫在前面

每個公司相比都有自己的 git 分支管理規(guī)范,在項目組中開發(fā)人員較多的時候岁忘,這個就顯得尤為重要辛慰。所以我們必須得掌握 git 的分支管理「上瘢基本套路就是有一個主線帅腌,然后在迭代周期內(nèi),每個開發(fā)人員拉取自己的分支麻汰,待開發(fā)完畢后大家再 merge 回主線狞膘,發(fā)布版本。

流程圖

具體的 git 代碼分支管理看這個好了:https://nvie.com/posts/a-successful-git-branching-model/

怎么回事什乙?

到底怎么就被 git 版本回滾給坑了呢挽封?不急,待我慢慢道來臣镣。

在咕咚的項目組中辅愿,在一個新的需求評審?fù)戤叄M入開發(fā)狀態(tài)時忆某,大家會基于 develop 分支拉取自己的分支点待,命名為 feature/XXX,然后各自在自己的分支上進行開發(fā)弃舒。

由于大家開發(fā)業(yè)務(wù)上的不同癞埠,所以在需求開發(fā)完畢状原,整合代碼的時候,一般都不會出現(xiàn)沖突的情況苗踪,即使出現(xiàn)颠区,那也應(yīng)該是比較容易解決的。

可在最近的一次 merge 中出現(xiàn)了一個比較奇怪的問題通铲。

如圖所示:

1.png

我當前所在的分支是 feature8.29.0_nanchen毕莱,該分支已經(jīng) merge 了 release8.28.0 分支上的最新代碼,本地沒有任何提交÷幔現(xiàn)在由于一些原因朋截,我需要把另外一位同事開發(fā)的 feature8.28_buyGifts 分支代碼合并到我的分支上。進行開發(fā)吧黄。

意外地出現(xiàn)了很多的沖突部服。

2.png

我們使用 git status 看看到底發(fā)生了什么。

3.png

從截圖中可以看出拗慨,git 認為我們當前的分支 delete 了不少文件廓八,而這些文件是在 feature8.28_buyGifts 分支上存在的。

我們 vim 查看文件情況胆描。這里就選取第一個 MarketItemsInfo.java 做截圖。

4.png

我們查看其他沖突文件以后仗阅,發(fā)現(xiàn)全部是和 Presents 這個類相關(guān)的沖突昌讲,而這些文件實際上是開發(fā) feature8.28_buyGifts 分支的小伙伴開發(fā)的,主分支不可能做干預(yù)减噪,這里讓人什么疑惑短绸。

為了驗證自己的猜想,我們查看一下 MarketItemsInfo.java 的提交歷史筹裕。

5.png

正如我們所想醋闭,確實在 7 個月內(nèi),都沒有人動過這個文件朝卒。

所以一個 7 個月都沒有人動過的文件证逻,怎么就會 merge 的時候出現(xiàn)了這個令人費解的沖突呢?

查看一下當前分支所有的日志抗斤。

6.png

似乎發(fā)現(xiàn)了一點異常囚企。這位小伙伴曾經(jīng)往 release8.28.0 進行了 merge 操作,此后被告知未提測不能 merge 到主線的時候瑞眼,他又對 release8.28.0 分支做了 revert 操作龙宏。所以可能因此讓 git 認為 release8.28.0 上有了這樣的文件修改,因為操作后面被 revert伤疙,所以用 git lg <fileName> 的時候银酗,也看不到最近對文件的改動記錄。

我現(xiàn)在只能說可能是這個原因,如果大家有高見的還望留言指導(dǎo)黍特。

如果是這樣蛙讥,那么我們只要在此次 revert 操作之前進行 merge feature8.28_buyGifts 分支代碼的話,應(yīng)該是不會出問題的衅澈。

為了驗證键菱,我們重新建立一個分支,然后 reset 到 revert 操作之前今布,再進行 merge经备,查看是否還會出現(xiàn)這樣的情況。

7.png

明顯沒有出現(xiàn)任務(wù)沖突部默。

我們再試試侵蒙,在 revert 后進行 merge 操作。

8.png

如我們所想傅蹂,當我們 reset 到 revert 提交的時候纷闺,再進行 merge 直接發(fā)生了這個沖突。

這樣的話份蝴,一定意義上犁功,已經(jīng)印證了我們的想法。git 確實把這個文件當做修改了婚夫。

怎么處理浸卦?

遇到了這樣的問題,直觀上案糙,肯定是將沖突的改動限嫌,全部以這位小伙伴的代碼為準,因為主線上的代碼时捌,已經(jīng)確認是沒有人動過這幾個文件的怒医。

最不濟的方法,可能就是直接舍棄掉這個小伙伴的操作奢讨,然后強行把他后面寫的代碼稚叹,重新寫一遍了(因為他后面的代碼量很少)。

為什么會出現(xiàn)這個 revert 操作拿诸?

說到底還是此次 revert 惹的禍入录。

我詢問該小伙伴后,得知佳镜,他是在 release8.28.0 主分支上 merge 了自己的代碼僚稿,并且 push 到服務(wù)器后,被告知未提測的代碼不能 merge 到主分支后蟀伸,希望遺棄 push 到服務(wù)器上的這個 merge 操作蚀同,所以才采用 revert 命令的缅刽。

正確的操作?

我寫這個正確的操作題目蠢络,是真的不敢寫的衰猛。不過還是斗膽寫了一下。如果我想遺棄自己 push 到服務(wù)器上的提交的話刹孔,我一定會選擇 reset 后再進行 push 操作的啡省。

  1. 首先使用 git reset —hard <版本號> 讓 HEAD 指針指向 merge 前的 commit ID。(注意髓霞,這是直接放棄之后所有的提交卦睹,采用 --hard,這里因為是沒有別人提交別的代碼)
  2. 再使用 git push origin <分支名> —force 命令強行把提交 push 到服務(wù)器即可方库。

寫在最后

實際上结序,我自己對 git 的操作也有些模棱兩可,不過還是希望能用本次教訓(xùn)給大家簡單做下交流吧纵潦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末徐鹤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子邀层,更是在濱河造成了極大的恐慌返敬,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寥院,死亡現(xiàn)場離奇詭異劲赠,居然都是意外死亡,警方通過查閱死者的電腦和手機只磷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門经磅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泌绣,“玉大人钮追,你說我怎么就攤上這事“⒙酰” “怎么了元媚?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長苗沧。 經(jīng)常有香客問我刊棕,道長,這世上最難降的妖魔是什么待逞? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任甥角,我火速辦了婚禮,結(jié)果婚禮上识樱,老公的妹妹穿的比我還像新娘嗤无。我一直安慰自己震束,他們只是感情好,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布当犯。 她就那樣靜靜地躺著垢村,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嚎卫。 梳的紋絲不亂的頭發(fā)上嘉栓,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天,我揣著相機與錄音拓诸,去河邊找鬼侵佃。 笑死,一個胖子當著我的面吹牛恰响,可吹牛的內(nèi)容都是我干的趣钱。 我是一名探鬼主播,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼胚宦,長吁一口氣:“原來是場噩夢啊……” “哼首有!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起枢劝,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤井联,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后您旁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烙常,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年鹤盒,在試婚紗的時候發(fā)現(xiàn)自己被綠了蚕脏。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡侦锯,死狀恐怖驼鞭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情尺碰,我是刑警寧澤挣棕,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站亲桥,受9級特大地震影響洛心,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜词身,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一番枚、第九天 我趴在偏房一處隱蔽的房頂上張望法严。 院中可真熱鬧,春花似錦渐夸、人聲如沸嗤锉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至苫幢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間韩肝,已是汗流浹背触菜。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留哀峻,地道東北人涡相。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓剩蟀,卻偏偏與公主長得像,于是被迫代替她去往敵國和親育特。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349

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