首页
/
每日頭條
/
圖文
/
git代碼合并的方式
git代碼合并的方式
更新时间:2026-02-16 16:29:44

在 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
推荐阅读
緻敬母親感動落淚
緻敬母親感動落淚
一倉颉先生造“母”字的時候是照着母親懷孕的肚子畫出來的——母親就是生你的人。造完“母”字後,倉颉先生又造了一個“媽”字。媽是母的另一個表述字:一個“女”字加一個“馬”字,媽就是那個一輩子甘願為你當牛做馬的人。傳說倉颉先生造出這兩個字的時候,...
2026-02-16
世界上最先進的制造業國家是哪個
世界上最先進的制造業國家是哪個
世界上最先進的制造業國家是哪個?一般來說,一個國家的制造業直接表現了其生産力水平,是綜合國力最直接的象征之一但随着發達國家不斷投入金融産業,減少制造業比重,不少老牌國家也因此掉隊雖然金融比制造業更能賺錢,但關鍵時刻,實物肯定比數字肯靠得住,...
2026-02-16
無法跨越知道和做到的鴻溝
無法跨越知道和做到的鴻溝
網上一直流傳着一個說法:“為什麼懂得那麼多道理,依然過不好這一生?”其實,這個問題早就有不少人回答過。王陽明說:“未有知而不行者,知而不行,隻是不知。”知名法律人士羅翔說:“人最大的痛苦在于:無法跨越知道和做到的鴻溝”。相信大多數人也明白一...
2026-02-16
這樣挺好作文600字左右
這樣挺好作文600字左右
原創茨園茨園笑聊2022-05-1510:35很難說現在的年輕人都有什麼古怪念頭,但我二十歲時,最大的想法就是談一場風花雪月的戀愛。于是,很多不眠夜裡,我會想像一個類似田螺姑娘那樣的女孩出現在身邊,她不一定會像照顧“大爺”那樣照顧我,但一定...
2026-02-16
王陽明最經典十句話十四字
王陽明最經典十句話十四字
世界之事,庸人逐利,智者謀勢,欲成大事,順勢而為,才能事半功倍。“心學”宗師王陽明告訴我們,順應事情的發展規律,抓住時機,才能成就大事。以下就結合王陽明的人生智慧,分享五句話,一個男人,想要成大事,應該悟透這五句話,必為人中龍鳳,大富大貴,...
2026-02-16
Copyright 2023-2026 - www.tftnews.com All Rights Reserved