跳至主要內容

Git-6.变基(rebase)和合并(merge)区别?

Mr.Si大约 2 分钟Git踩坑记录

问题详情

头像
Git-变基(rebase)和合并(merge)区别?

解析

  1. 合并(Merge):

    • 合并是将两个分支的历史记录合并在一起,创建一个新的合并提交来整合两者的修改。
    • 合并会保留原分支的完整历史记录,因此可以清晰地看到哪些修改来自于哪个分支。
    • 合并会创建一个新的合并提交,这个提交有多个父节点,指向被合并的分支的最新提交和合并分支的最新提交。
    o---o---o---o---o---o   (分支A)
     \         /
      o---o---o   (分支B)
    
    • 合并后:
    o---o---o---o---o---o---o   (合并提交)
     \         /           /
      o---o---o   (分支A)   (分支B)
    
  1. 变基(Rebase):

    • 变基也是将两个分支的历史记录合并在一起,但与合并不同,它将当前分支的所有提交都应用在目标分支的最新提交上。
    • 变基会使提交历史更加线性,避免了合并提交的产生,使得提交历史更加清晰。
    • 变基可以提供一个更干净、整洁的提交历史,但可能会改写提交历史,因此不建议在公共分支上进行变基操作。
    o---o---o---o---o---o   (分支A)
     \
      o---o---o   (分支B)
    
    • 变基后:
    o---o---o---o---o---o   (分支A)
                           \
                            o---o---o   (分支B)
    

总结

头像
再多说就不礼貌了
  • 合并会保留原分支的完整历史记录,创建一个新的合并提交。
  • 变基会将当前分支的所有提交都应用在目标分支的最新提交上,使提交历史更加线性。