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

在 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-01-31
伯爵有哪幾款手表
伯爵有哪幾款手表
伯爵有哪幾款手表?,接下來我們就來聊聊關于伯爵有哪幾款手表?以下内容大家不妨參考一二希望能幫到您!伯爵有哪幾款手表,
2026-01-31
顔丹晨劉濤演的電視劇
顔丹晨劉濤演的電視劇
相傳上古時期三皇五帝之一帝喾的女兒、後羿之妻嫦娥美貌非凡,卻因偷食後羿從西王母處所求得的不死藥而奔月成仙,居住在月亮上面的廣寒宮之中。作為中國古代傳說中仙女,曆來影視劇中有很多扮演者,今天整理了幾位有話題的“嫦娥”扮演者,歡迎來評判誰最能演...
2026-01-31
12個高效時間管理術
12個高效時間管理術
很多人都好奇,萌姐典型的一天是怎樣的?我今天來跟你分享一下。每天我是一個超級早起者,所以每天四五點鐘,最晚五六點鐘一定會起床了。早上發完公衆号之後,第一件事就是要到書房進行3~4小時的「沉浸式閱讀」,全年當中我大概一年會讀300本書,那麼剩...
2026-01-31
人在異鄉心酸的詩
人在異鄉心酸的詩
殘門鏽鎖久不開,灰磚小徑覆幹苔。無名枯草侵滿院,一股辛酸入喉來。忽憶當年高堂在,也曾竈頭燒鍋台。恍覺如今形影隻,家中無人訴情懷。異鄉漂泊幾十載,再回故鄉成外人。門後空留教子棍,已無叮囑寒添衣。一二作者花甲老頭的小詩,道出了每個遊子的心聲。好...
2026-01-31
Copyright 2023-2026 - www.tftnews.com All Rights Reserved