merge和rebase
標題上的兩個指令:merge和rebase都是用來合併分支的。
這裡不解釋rebase指令,以及兩個指令的原理,詳細解釋參考這裡。
下面的內容主要說的是兩者在實際操作上的差異。
什麼是分支
分支就是方便多人在同一專案中的協作開發。比方說:每個人開發不同的功能,在各自的分支開發過程中互不影響,完成後都提交到develop分支。極大的提高了開發的效率。
合併分支
每個人建立一個分支進行開發,當開發完成,需要合併到develop分支的時候,就需要用到合併的指令。
什麼是衝突
合併的時候,有可能會產生衝突。
衝突的產生是因為在合併的時候,不同分支修改了相同的位置。所以在合併的時候git不知道那個到底是你想保留的,所以就提出疑問(衝突提醒)讓你自己手動選擇想要保留的內容,從而解決衝突。
merge和rebase的差異
1.採用merge和rebase後,git log的區別,merge指令不會保留merge的分支的commit:
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中文網其他相關文章!