• 在分支commit节点表现的区别:

merge的主分支不会保留**merge**分支commit!而rebase会保留分支的commit

  • 在操作方面:
    • merge:一股脑的合并所有分支上的commit,解决完冲突执行git add . ; git commit -m 'fix conflict',这时候产生一个commit;
    • rebase: 交互式合并分支上的commit,解决完冲突后提交,不会产生多余的commit;

注意:git pull默认以merge方式进行合并

举例

初始状态

包含两个分支:master和dev

image.png

merge后节点状态

image.png

rebase后节点状态

  • 第一二次rebase后的状态

image.png

  • 最终rebase后的状态

image.png
image.png