首页
/
每日頭條
/
圖文
/
git代碼合并的方式
git代碼合并的方式
更新时间:2026-02-26 19:36:59

在 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
推荐阅读
原來你還在這裡經典片段王傑
原來你還在這裡經典片段王傑
關于才子謝霆鋒和浪子王傑,點姐不想說太多,因為很多事情,隻有當事人最清楚。可以肯定的是,江湖傳聞多是八卦和謠言……《失敗者》是一首由林夕作詞、謝霆鋒作曲,王傑演唱的經典粵語歌曲,收錄在王傑2000年的專輯《GIVING》當中。這首歌可以說是...
2026-02-26
可愛布朗熊可妮兔頭像
可愛布朗熊可妮兔頭像
,
2026-02-26
物業辦理臨時出入證通知
物業辦理臨時出入證通知
物業辦理臨時出入證通知?尊敬的龍華居民和遊客朋友:根據核酸檢測結果,我區部分區域存在陽性病例活動軌迹,經綜合研判,為進一步消除風險隐患,切實保障人民群衆生命安全和身體健康,龍華區決定在部分重點區域(具體為南海大道以北,濱海大道以南,丘海大道...
2026-02-26
清道夫魚 能吃嗎
清道夫魚 能吃嗎
圖文/養魚老道原創清道夫魚又吸盤魚、垃圾魚,其實它們本來就是異形魚的一種,原産于南美洲和中美的河流中,在原産地的人們是可以用來食用的。清道夫魚對于生活水質基本上無挑剔,它們還比較的耐低溫,由于其可以啃食缸壁和魚缸底部的垃圾,以及最初商家的大...
2026-02-26
巫師3昆特牌第二輪玩法
巫師3昆特牌第二輪玩法
昆特牌是《巫師3》的一大特色,不少玩家都沉迷其中,下面為大家帶來玩家分享的《巫師3》昆特牌玩法心得,教大家巫師3昆特牌怎麼玩,一起來看看吧。發一點簡單的不同牌的對策怪獸類怪獸類型領導能力一半是自帶近戰攻擊力雙倍,常用帶(呼朋喚友類型)近戰,...
2026-02-26
Copyright 2023-2026 - www.tftnews.com All Rights Reserved