成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

合并分支使用Merge還是Rebase

Luosunce / 3077人閱讀

摘要:合并到多個(gè)目標(biāo)分支或其他人正在使用當(dāng)前分支這是應(yīng)該使用因?yàn)槟銏?zhí)行時(shí)當(dāng)前分支原先的會(huì)被刪除會(huì)影響他人,形成新的連接在目標(biāo)分支最新之后。

閱讀原文:合并分支使用Merge還是Rebase?

作為一個(gè)有追求的開發(fā)者,我一定會(huì)選擇更好的版本管理工具(Git), 使用中我們難免會(huì)在 Merge 和 Rebase 中選擇其一用于合并分支。

Rebase 和 merge 都是被設(shè)計(jì)用于集成你所做的改變從一個(gè)分支到另一個(gè)分支,只是通過不同的方式。雖然目的相同,但不同的方式有不同的優(yōu)缺點(diǎn)。

區(qū)別

例如:我們有下面的幾個(gè)commit,merge會(huì)將一些commit的組合作為一個(gè)結(jié)果,而rebase會(huì)將所有commit添加到目標(biāo)分支的最近一次提交之后。

通過上圖我們可以看到,merge 會(huì)存在合并的歷史記錄,而rebase沒有了歷史記錄且成一條直線。

Merge

簡(jiǎn)單易理解

源分支和目標(biāo)分支相互分離

保留功能分支的提交歷史和分支圖形

分支一旦較多顯示比較混亂

Rebase

簡(jiǎn)化復(fù)雜的記錄且線性可讀

沒有合并的記錄

多個(gè)commit沖突時(shí)必須一個(gè)個(gè)提交去修改

對(duì)遠(yuǎn)程分支rebase需要force push

什么時(shí)候使用rebase?什么時(shí)候使用merge ?

獨(dú)立開發(fā)

如果你不是團(tuán)隊(duì)合作開發(fā),那么你可以優(yōu)先選擇使用rebase來保持你整潔的提交歷史。

準(zhǔn)備code review

你需要在合并的時(shí)候有人來給你review,此時(shí)你需要提交一個(gè) merge/pull request,此時(shí)別人可review你的代碼后會(huì)執(zhí)行merge,這將保存你此次的請(qǐng)求合并的記錄,已備將來追溯。

合并到多個(gè)目標(biāo)分支或其他人正在使用當(dāng)前分支

這是應(yīng)該使用merge,因?yàn)槟銏?zhí)行rebase時(shí),當(dāng)前分支原先的commit會(huì)被刪除(會(huì)影響他人),形成新的commit連接在目標(biāo)分支最新commit之后。所以在這個(gè)條件不成立的時(shí)候你可以使用rebase來合并分支。

推薦

在不符合上面第三點(diǎn)時(shí)(合并到多個(gè)目標(biāo)分支或其他人正在使用當(dāng)前分支),個(gè)人分支(feature/bugfix/……)中使用rebase來更新主分支(個(gè)人分支的來源)上的變動(dòng),確保當(dāng)前分支是最新的,然后提交merge/pull request,由其他人來負(fù)責(zé)對(duì)你的代碼進(jìn)行review并確定是否通過請(qǐng)求,這樣可以看到每個(gè)人開發(fā)合并的歷史記錄。

不知道你是如何的呢?

往期文章一覽

把「策略模式」應(yīng)用到實(shí)際項(xiàng)目中

造個(gè)輪子,我學(xué)到了什么

技術(shù)面試中的軟技能

不同時(shí)重寫equals和hashCode又怎樣!

關(guān)注微信公眾號(hào)「碼上實(shí)戰(zhàn)」 回復(fù) :面試視頻 和 架構(gòu)師 送你非常不錯(cuò)的資料。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/74555.html

相關(guān)文章

  • git rebase VS git merge? 更優(yōu)雅的 git 合并方式值得擁有

    摘要:請(qǐng)注意,此不違反黃金規(guī)則,因?yàn)橹挥心愕谋镜靥峤槐灰苿?dòng),之前的所有內(nèi)容都不會(huì)受到影響。在大多數(shù)情況下,這比通過合并提交與遠(yuǎn)程分支同步更直觀。 寫在前面 如果你不能很好的應(yīng)用 Git,那么這里為你提供一個(gè)非常棒的 Git 在線練習(xí)工具 Git Online ,你可以更直觀的看到你所使用的命令會(huì)產(chǎn)生什么效果showImg(https://segmentfault.com/img/remote...

    LiuRhoRamen 評(píng)論0 收藏0
  • Git基礎(chǔ)知識(shí)教程整理(Git分支管理)

    摘要:分支的創(chuàng)建合并與刪除創(chuàng)建分支與切換分支或者命令加上參數(shù)表示創(chuàng)建并切換?;蛘吆竺娌桓种麜r(shí)指列出所有分支,當(dāng)前分支前面加。刪除分支刪除本地分支,不能在當(dāng)前分支執(zhí)行刪除當(dāng)前分支的操作。 分支的創(chuàng)建、合并與刪除 創(chuàng)建分支與切換分支 $ git branch develop$ git checkout develop 或者 $ git checkout -b develop git che...

    xingpingz 評(píng)論0 收藏0
  • 猿猿有責(zé),維持整潔的 Git 提交記錄,三個(gè)錦囊送給你

    摘要:背景背景大家都有學(xué)習(xí)如何規(guī)范簡(jiǎn)潔的編寫代碼,但卻很少學(xué)習(xí)如何規(guī)范簡(jiǎn)潔的提交代碼。背景 大家都有學(xué)習(xí)如何規(guī)范簡(jiǎn)潔的編寫代碼,但卻很少學(xué)習(xí)如何規(guī)范簡(jiǎn)潔的提交代碼?,F(xiàn)在大家基本上都用 Git 作為源碼管理的工具,Git 提供了極大的靈活性,我們按照各種 workflow 來提交/合并 code,這種靈活性把控不好,也會(huì)帶來很多問題 最常見的問題就是亂成一團(tuán)的 git log histo...

    wendux 評(píng)論0 收藏0
  • 淺析git

    摘要:還可以通過檢查對(duì)象內(nèi)容的的哈希值和對(duì)象名是否相同,來判斷對(duì)象內(nèi)容是否正確。對(duì)象對(duì)象和其它所有的對(duì)象一樣,都用其內(nèi)容的哈希值來命名的只有當(dāng)兩個(gè)對(duì)象的內(nèi)容完全相同包括其所指向所有子對(duì)象時(shí),它的名字才會(huì)一樣,反之亦然。 git是什么 簡(jiǎn)單來說,Git,它是一個(gè)快速的 分布式版本控制系統(tǒng) (Distributed Version Control System,簡(jiǎn)稱 DVCS) 。 同傳統(tǒng)的 集...

    jas0n 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<