首页
/
每日頭條
/
圖文
/
git代碼合并的方式
git代碼合并的方式
更新时间:2026-01-09 16:59:27

在 git 中整合來自不同分支的修改主要有兩種方法:合并(merge)以及 變基(rebase)

合并(merge)

git代碼合并的方式(Git進階合并與變基)1

merge流程圖

merge的原理是找到這兩個分支的祖先commit,在兩個分支最新的commit進行三方對比合并。

注:git會對每個文件進行一個哈希計算,這個值一樣的話說明文件沒有改動過

上圖中,共同的祖先commit2,master最新commit6,develop最新commit5,merge會基于2,5,6這三個commit進行對比

  1. commit6和commit2對比,如果文件的哈希值不一樣,同時commit5和commit2對比,發現一樣,說明隻有commit6修改了這個文件,這種情況直接合并,不會提示
  2. commit6和commit2對比,如果文件的哈希值不一樣,同時commit5和commit2對比,哈希值不一樣,說明兩個分支都對同一個文件修改了,則提示沖突,需要我們手動merge

最後合并完後會生成一個新的commit7

變基(rebase)

上圖的另一種合并方法:在develop分支上提取出commit4,5的修改,然後在master的最新的commit6的基礎上應用commit4,5的修改,這種方式就是變基(rebase)。你可以使用 rebase命令将提交到某一分支上的所有修改都移至另一分支上,就好像“重新播放”一樣。

git代碼合并的方式(Git進階合并與變基)2

rebase結果

這裡新增了commit4,5,在merge時有可能都會有沖突,這裡有可能需要手動merge兩次,因為rebase時可能在提交commit4的時候提示沖突一次,在提交commit5的時候又沖突一次

總結
  • rebase:合并後分支圖譜好看,一條線,但合并過程中出現沖突的話,比較麻煩(rebase過程中,一個commit出現沖突,下一個commit也極有可能出現沖突,一次rebase可能要解決多次沖突);
  • merge:合并後分支圖譜不好看,一堆線交錯,但合并有沖突的話,隻要解一次就行了;

一般多人合作的時候優先考慮合并,一個人玩的時候可以用變基。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
魯迅先生有沒有罵過日本人(魯迅從來不罵蔣介石)
魯迅先生有沒有罵過日本人(魯迅從來不罵蔣介石)
     魯迅罵蔣介石為“法斯斯蒂”   中評社北京7月17日電(作者 汪毅夫)近有友人垂問:魯迅從來不罵蔣介石嗎?幷說網上盛傳“魯迅不罵蔣介石”的相關文章。我的回應是:如果“罵”是“批評”的意思,則魯迅罵過蔣介石,我很快就會寫短文說明和證明。同時,我的反應是,從網上搜索,看到了許多“相關文章” :有著名的李敖大師的, 也有不具名的無名氏的;有主張和附議的,...
2026-01-09
樹莓派3和樹莓派3b(測試樹莓派3B:)
樹莓派3和樹莓派3b(測試樹莓派3B:)
        開發能力進一步增強需使用專用電源适配器   -      樹莓派屬于起步很早但配置較低的電子制作模闆之一,很長時間以來性能落後是一大诟病,今天,最新的樹莓派3B型将有助于改變這一尴尬現狀。   樹莓派(Raspberry Pi)是流行的電子制作模闆之一,類似于PC上的準系統,它将除了存儲之外的功能整合在撲克大小的主闆上,剩下的就是系統安裝和軟...
2026-01-09
薩克斯演奏之前的組裝方法(薩克斯演奏技巧探究)
薩克斯演奏之前的組裝方法(薩克斯演奏技巧探究)
     接着,當然要說說吹奏薩克斯的基本方法了:   要成功地演奏好薩克斯管,首先必須訓練自己對音樂的感受力及理解能力,平時要多學習一點薩克斯管以外的理論。薩克斯管的演奏其實包括兩個大部分,其一就是對基本功的訓練,内容包括:好的演奏姿勢、口形、運氣的方法、音色、熟練的指法、清晰敏捷的吐音;其二就是技巧。技巧是建立在基本功的基礎上的,奏效果。一般情況下常用的...
2026-01-09
你真的看懂犬夜叉了嗎(你從沒注意到的暖心時刻)
你真的看懂犬夜叉了嗎(你從沒注意到的暖心時刻)
  《犬夜叉》主要講述的是要與人之間的故事與大部分同類的故事相同,大部分劇情都是以戰鬥為主,但是《犬夜叉》在戰鬥的同時,卻與其他同類動漫有所不同,《犬夜叉》除了暢快淋漓的打鬥以外,還是部非常虐心的作品,劇中《犬夜叉》與桔梗的接吻不知道看哭了多少人,所以《犬夜叉》中很少有熱血,有的隻是各種感人的暖心、虐心瞬間。      有很多瞬間是作者可以表達出來的,但是也...
2026-01-09
武林外傳郭芙蓉裝病要瓜子(郭芙蓉怒砸同福店)
武林外傳郭芙蓉裝病要瓜子(郭芙蓉怒砸同福店)
  《武林外傳》是我回看次數最多的電視劇,也是我最喜歡的電視劇。第一次看的時候隻覺好笑,後面多看幾次才發現編劇其實設了很多伏筆,很有趣。《武林外傳》劇情緊湊有趣,演員表現自然,會揭示深刻的道理但又不是毒雞湯。最近十年這樣優秀的情景喜劇已不多見,盡管之後甯财神又寫了《龍門客棧》,但總覺得少了些味道。所以我計劃做《武林外傳》的系列劇情品讀,除了回憶經典,也一起來...
2026-01-09
Copyright 2023-2026 - www.tftnews.com All Rights Reserved