首頁 >開發工具 >Git >git rebase 和 merge 有什麼差別?

git rebase 和 merge 有什麼差別?

hzc
hzc原創
2020-06-12 16:21:469425瀏覽

git rebase 和 merge 有什麼差別?

merge和rebase

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

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

下面的內容主要說的是兩者在實際操作上的差異。

什麼是分支

分支就是方便多人在同一專案中的協作開發。比方說:每個人開發不同的功能,在各自的分支開發過程中互不影響,完成後都提交到develop分支。極大的提高了開發的效率。

合併分支

每個人建立一個分支進行開發,當開發完成,需要合併到develop分支的時候,就需要用到合併的指令。

什麼是衝突

合併的時候,有可能會產生衝突。

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

merge和rebase的差異

    1.採用merge和rebase後,git log的區別,merge指令不會保留merge的分支的commit:

git rebase 和 merge 有什麼差別?

    2.處理衝突的方式:

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

  •   (互動式)使用rebase指令合併分支,解決衝突,執行git add .和git rebase --continue,不會產生額外的commit。這樣的好處是,‘乾淨’,分支上不會有無意義的解決分支的commit;壞處,如果合併的分支中存在多個commit,需要重複處理多次衝突。

    3.git pull和git pull --rebase差異:git pull做了兩個操作分別是『取得』和合併。所以加了rebase就是以rebase的方式進行合併分支,預設為merge。

推薦教學: 《Git教學

以上是git rebase 和 merge 有什麼差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn