結論:
- 直接merge會產生合併提交記錄,而rebase是會形成線性的提交記錄,如果該合併是有意義的合併,則可以使用merge,記錄合併提交記錄,如果是日常個人的合併,則使用rebase,減少無意義的合併提交記錄
- 使用rebase要注意在自己的分支上進行,不然會導致其他人由於指向的commit id不同,導致同步問題
- git pull 預設是merge ,可配置為rebase
分析
假設當前有兩個分支,一個特性分支、一個主分支,如圖
使用merge
(main): git merge feature
結果如下圖
使用rebase
(feature): git rebase main
(feature): git checkout main
(main): git merge feature
使用merge --squash
(main): git merge --squash feature
個人筆記備忘,整理自知行小課