git rebase 和 merge 有什么區(qū)別?

git rebase 和 merge 有什么區(qū)別?

merge和rebase

標題上的兩個命令:merge和rebase都是用來合并分支的。

這里不解釋rebase命令,以及兩個命令的原理,詳細解釋參考這里。

下面的內(nèi)容主要說的是兩者在實際操作中的區(qū)別。

什么是分支

分支就是便于多人在同一項目中的協(xié)作開發(fā)。比方說:每個人開發(fā)不同的功能,在各自的分支開發(fā)過程中互不影響,完成后都提交到develop分支。極大的提高了開發(fā)的效率。

合并分支

每個人創(chuàng)建一個分支進行開發(fā),當開發(fā)完成,需要合并到develop分支的時候,就需要用到合并的命令。

什么是沖突

合并的時候,有可能會產(chǎn)生沖突。

沖突的產(chǎn)生是因為在合并的時候,不同分支修改了相同的位置。所以在合并的時候git不知道那個到底是你想保留的,所以就提出疑問(沖突提醒)讓你自己手動選擇想要保留的內(nèi)容,從而解決沖突。

merge和rebase的區(qū)別

????1.采用merge和rebase后,git log的區(qū)別,merge命令不會保留merge的分支的commit:

git rebase 和 merge 有什么區(qū)別?

????2.處理沖突的方式:

  • ??(一股腦)使用merge命令合并分支,解決完沖突,執(zhí)行git add .和git commit -m’fix conflict’。這個時候會產(chǎn)生一個commit。

  • ??(交互式)使用rebase命令合并分支,解決完沖突,執(zhí)行git add .和git rebase –continue,不會產(chǎn)生額外的commit。這樣的好處是,‘干凈’,分支上不會有無意義的解決分支的commit;壞處,如果合并的分支中存在多個commit,需要重復處理多次沖突。

????3.git pull和git pull –rebase區(qū)別:git pull做了兩個操作分別是‘獲取’和合并。所以加了rebase就是以rebase的方式進行合并分支,默認為merge。

推薦教程: 《Git教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享