首页
/
每日頭條
/
圖文
/
git代碼合并的方式
git代碼合并的方式
更新时间:2026-01-12 05:10:57

在 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
推荐阅读
父母給孩子取的奇怪的名字
父母給孩子取的奇怪的名字
給孩子取名字是每一個新生父母都要面對的事,但很多的家長卻為此犯了難。取名字很容易,但是想要給孩子取一個與衆不同的好名字卻不是容易。為此有人在詩詞歌賦裡面找靈感,有人靠一時頭腦發熱,也有人靠周易五行保駕護航。Mommy的一個親戚,為了給孩子取...
2026-01-12
一龍被泰拳王30秒ko
一龍被泰拳王30秒ko
KO之王太恐怖!一龍20秒KO奪S1金腰帶,對手重傷不起誰不服2014年12月19日,陝西省渭南市,一龍20秒KO對手蓮特納瓦,以絕對實力獲世界頂級泰拳S1金腰帶。本場比賽,武僧一龍完全占據上風,一上來便展開迅猛進攻,對手沒有絲毫的招架之功...
2026-01-12
餘生做個懂你的人的句子
餘生做個懂你的人的句子
01生活,如人飲水,冷暖自知。愛情也好,友情也罷,經曆過,才知其中滋味。過去的自己,對所有人都好,習慣了善良,不懂得拒絕。以為被人需要,就是愛情,以為受人依賴,就是友情。可是後來發現,身邊的許多人,隻能同享福,不能共患難。對你好的人,繞個路...
2026-01-12
夢幻西遊神獸分類
夢幻西遊神獸分類
作者:蜜兒呀寫這篇的起因:幫裡有個175的小夥伴買了個69級的号,看見超級神鼠可(dou)愛(bi)就閉着眼跨服買了隻最便宜的,然後,問這神鼠多少級可以進階,于是今天的故事就開始了。。。。他買的這隻超級神鼠是1.2初始成長的,而且是通過跨服...
2026-01-12
珍妃的一生經曆
珍妃的一生經曆
珍妃是誰?恪順皇貴妃(1876年—1900年),即珍妃,他他拉氏,原任戶部右侍郎長叙之女,滿洲鑲紅旗人,光緒帝妃嫔,也是光緒最寵愛的妃子。《國聞備乘》:"惟珍妃生性乖巧、讨人歡喜,工翰墨,善棋,日侍皇帝左右,與帝共食飲樂,德宗尤寵愛之。光緒...
2026-01-12
Copyright 2023-2026 - www.tftnews.com All Rights Reserved