git中rebase和merge的區別是什么

區別:1、rebase把當前的commit放到公共分支的最后面,merge把當前的commit和公共分支合并在一起;2、用merge命令解決完沖突后會產生一個commit,而用rebase命令解決完沖突后不會產生額外的commit。

git中rebase和merge的區別是什么

本文操作環境:Windows10系統、git2.30.0版、Dell G3電腦。

git中rebase和merge的區別是什么

rebase會把當前分支的 commit 放到公共分支的最后面,所以叫變基。就好像從公共分支又重新拉出來這個分支一樣。

舉例:如果從 master 拉個feature分支出來,然后提交了幾個 commit,這個時候剛好有人把他開發的東西合并到 master 了,這個時候 master 就比你拉分支的時候多了幾個 commit,如果這個時候你 rebase master 的話,就會把你當前的幾個 commit,放到那個人 commit 的后面。

git中rebase和merge的區別是什么

merge會把公共分支和你當前的commit 合并在一起,形成一個新的 commit 提交

git中rebase和merge的區別是什么

采用merge和rebase后,git log的區別,merge命令不會保留merge的分支的commit:

git中rebase和merge的區別是什么

處理沖突的方式:

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

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

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

推薦學習:《Git教程

以上就是

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