日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

三路合并 —— Git 学习笔记 17

發(fā)布時(shí)間:2025/3/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三路合并 —— Git 学习笔记 17 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

三路合并

和其他版本控制系統(tǒng)不同,Git 提供的合并沖突解決方案并不會(huì)聰明過(guò)頭,不會(huì)嘗試自動(dòng)將所有問(wèn)題都解決。Git 的設(shè)計(jì)哲學(xué)是智能判斷一個(gè)合并是否可以非常容易地自動(dòng)完成,如果自動(dòng)化方案不可行,就不要自作聰明地去嘗試解決它,最好讓用戶自己去解決合并沖突。

文件層面

通過(guò)比較共同的祖先(base)、當(dāng)前分支(ours),待合并分支(theirs),Git 采用三路合并算法生成合并結(jié)果。該算法至少在文件目錄層面非常簡(jiǎn)單。其規(guī)則如下:

祖先(base)HEAD(ours)分支(theirs)結(jié)果說(shuō)明
AAAA
AABB如果一方修改了某個(gè)文件,選擇修改版的文件
ABAB如果一方修改了某個(gè)文件,選擇修改版的文件
ABBB如果雙方擁有相同的變更,選擇修改過(guò)的版本
ABCmerge如果一方包含與另一方不一樣的變更,那么在內(nèi)容層面存在合并沖突

內(nèi)容層面

如果是最后一行的情況,那么 Git 就會(huì)在內(nèi)容上嘗試合并。我們舉個(gè)例子,假設(shè)提交圖如下:

B-C-D master(*)\E-F dev

目前所在分支是 master,當(dāng)嘗試把 dev 合并入 master 分支時(shí),base 是提交 B,ours 是提交 D,theirs 是提交 F.

B、D、F 三個(gè)提交都有 foo.c 這個(gè)文件,它們的內(nèi)容分別如下:

請(qǐng)問(wèn) Git 會(huì)怎么合并 ours 和 theirs 呢?

當(dāng)然需要參考他們的共同祖先 base, 下圖標(biāo)出了ours 和 theirs 分別與祖先不同的地方(用下劃線及藍(lán)色背景表示)。

祖先(base)HEAD(ours)分支(theirs)結(jié)果說(shuō)明
AAAA
AABB如果一方修改了某一行,那么這一行選擇修改版的
ABAB同上
ABBB如果某一行雙方擁有相同的變更,則選擇修改過(guò)的行
ABCconflict如果某一行雙方都修改了,且修改得不一樣,則報(bào)告沖突,需要用戶解決

根據(jù)上表的規(guī)則,合并過(guò)程類似這樣:

可以看到,第四行,雙方都修改了,且各自修改的內(nèi)容不一樣,所以 Git 不知道怎么解決,所以就把問(wèn)題拋給用戶了。

遞歸三路合并(Recursive three-way merge)

三路合并算法的基礎(chǔ)是找到被合并文件的共同祖先文件。在遇到十字交叉合并(criss-cross merge)時(shí),不存在獨(dú)一無(wú)二的最小共同祖先。如下圖所示,merge D 和 F 時(shí),發(fā)現(xiàn) C 和 E 都是它們的公共祖先,這可怎么辦,C 和 E 哪一個(gè)作為 Base 呢?

B--C--D master\ \/\ /\E--F dev

Git 的策略是:先合并 C 和 E 得到一個(gè)虛擬的公共祖先 G,把這個(gè) G 作為 Base. 那如果合并 C 和 E 的時(shí)候發(fā)現(xiàn)他們的公共祖先也不止一個(gè)怎么辦?所以就要遞歸進(jìn)行了。

如下圖:合并 M 和 N,發(fā)現(xiàn)他們的共同祖先有2個(gè)——L 和 K,于是合并 L 和 K,又發(fā)現(xiàn)他們的祖先不止一個(gè)——I 和 J,于是合并 I 和 J,就這樣遞歸下去。

B--C---D--I--L--M master\ \/ \/ \ /\ /\E---F--J--K--N dev

參考資料

【1】《Git 高手之路》,人民郵電出版社

【2】https://stackoverflow.com/questions/4129049/why-is-a-3-way-merge-advantageous-over-a-2-way-merge

【3】http://blog.fedeoo.cn/2017/02/22/git-合并策略-之-recursive/

總結(jié)

以上是生活随笔為你收集整理的三路合并 —— Git 学习笔记 17的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线视频天堂 | 每日在线更新av | 国内一区二区三区 | av噜噜 | 亚洲欧美日韩国产综合 | www.四虎com| 欧美国产一级片 | 久久久久久久美女 | 国产精品久久网站 | 日本成人午夜 | 精品久久久久久久久久久久久久久久 | 韩国av不卡| 四虎免费在线观看 | 特级西西444www高清大胆 | 国产精品欧美在线 | 狼人综合视频 | 欧美在线一区二区三区 | 黄色av网站在线免费观看 | 一本高清dvd在线播放 | √资源天堂中文在线 | 春色影视 | 国产在线视频网站 | 国产精品边吃奶边做爽 | 日日碰碰 | 中文区中文字幕免费看 | 久久久久久久久久久久久久久久久久 | 鲁一鲁啪一啪 | 色图自拍| 午夜啪啪网站 | 亚洲国产影院 | 国产污视频在线 | 干老太太视频 | 日日夜夜综合 | 98久久久| 人人爱人人 | 美国少妇性做爰 | 精品久久久噜噜噜久久久 | www.黄色 | 色中色在线视频 | 亚洲精品成人在线 | 天堂在线中文网 | 色悠悠久久综合 | 免费黄色在线播放 | 欧美一区二区三区免费视频 | 国产精品xxx在线观看www | 国内av网 | 国色综合| 麻豆传媒网站在线观看 | 国内毛片视频 | 亚洲欧美日韩中文字幕在线观看 | 精品午夜一区二区三区在线观看 | 欧美一级在线视频 | 亚洲图片欧美视频 | 日本在线小视频 | 国产chinesehd精品露脸 | 欧洲久久久久久 | 秋霞av鲁丝片一区二区 | 性色欲网站人妻丰满中文久久不卡 | 舐め犯し波多野结衣在线观看 | 中文字幕精品视频在线 | 日本人体视频 | 成人在线视频观看 | 美女光屁屁露胸胸 | 美痴女~美人上司北岛玲 | 自拍偷拍色图 | 爱爱爱网| 日韩理论片在线观看 | 国产精品入口a级 | 国产成人无码精品久久 | 欧美人与禽猛交乱配视频 | 中文字幕免费一区 | 久久三| av中文字幕在线播放 | 99性趣网| 中文欧美日韩 | 天堂在线观看视频 | 日本三级韩国三级美三级91 | 国产一二| 日本中文字幕有码 | 先锋av在线资源 | 欧美成人综合网站 | 69黄色片 | 少妇一级淫片免费视频 | 国精产品乱码一区一区三区四区 | 波多野结衣在线观看一区二区三区 | 欧美污视频在线观看 | 国产网站无遮挡 | 香蕉视频 | 免费a网站 | 国产毛片毛片毛片毛片毛片毛片 | 在线观看一区视频 | 亚洲av久久久噜噜噜噜 | 国产色网站 | 亚洲最大的黄色网 | 法国伦理少妇愉情 | 日本狠狠爱 | 欧美一区二区免费 | 干日本少妇首页 | www激情com|