一、Git 變基與合并
Git 提供了兩種將分支合并到主分支的方法:rebase(合并) 和 merge(變基)。rebase 和 merge 都是用于集成某個分支到另一個分支的方法。然而,它們采用的方法不同。merge 會將兩個分支直接合并成一個新的提交,而 rebase 則是將某個分支的提交復制到另一分支上,然后插入到目標分支的合適位置。下面分別介紹這兩個版本控制策略
1、變基
1.1、變基的工作原理
兩個分支master和feature,其中feature是在提交點B處從master上拉出的分支,master上有一個新提交M,feature上有兩個新提交C和D,如下:
下圖為變基后的提交節(jié)點圖
feature:待變基分支、當前分支;master:基分支、目標分支。當執(zhí)行rebase操作時,git會從兩個分支的共同祖先開始提取待變基分支上的修改,然后將待變基分支指向基分支的最新提交,最后將剛才提取的修改應用到基分支的最新提交的后面。
通俗解釋:rebase(變基),可以直接理解為改變基底。feature分支是基于master分支的B拉出來的分支,feature的基底是B。而master在B之后有新的提交,就相當于此時要用master上新的提交來作為feature分支的新基底。實際操作為把B之后feature的提交存下來,然后刪掉原來這些提交,再找到master的最新提交位置,把存下來的提交再接上去(新節(jié)點新commit id),如此feature分支的基底就相當于變成了M而不是原來的B了。
1.2、變基操作的優(yōu)缺點
優(yōu)點:文章來源:http://www.zghlxwxcb.cn/news/detail-783350.html
- 歷史記錄簡單 - rebase可以使得歷史記錄更加線性和簡單,比merge更容易理解
- 減少冗余的commit - rebase會將當前分支的修改整合到目標分支中,因此可以減少不必要的commit數(shù)量
缺點:文章來源地址http://www.zghlxwxcb.cn/news/detail-783350.html
- 可以改變歷史記錄 - rebase會改變歷史記錄,因此需要謹慎使用
- 可能會丟失提交記錄 - 如果由于一些原因,rebase失敗,一些提交記錄可能會丟失
2、合并
merge是將兩個分支的內(nèi)容合并成一個新的分支,讓這個新的分支包含兩個分支的內(nèi)容。當執(zhí)行merge時,Git將會創(chuàng)建一個新的commit,合并兩個分支的代碼。
優(yōu)點:
- 簡單易懂 - merge非常直觀和易于理解
- 保留歷史記錄 - 由于merge創(chuàng)建了一個新的commit,因此可以在歷史記錄中查看合并的結果,并且不會改變歷史記錄
缺點:
- 會產(chǎn)生冗余的commit- 由于merge會創(chuàng)建一個新的commit,因此可能會產(chǎn)生許多不必要的commit。
- 歷史記錄較為復雜 - 多個merge操作可能會導致歷史記錄變得復雜,難以理解。
到了這里,關于Git 變基與合并的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!