当前位置:   article > 正文

git merge的三种操作merge, squash merge, 和rebase merge_merge squash

merge squash

0. 概要

Git中,合并分支是将一个分支的更改集成到另一个分支的基本操作。让我们通过一个实际的示例场景,探讨三种常见的合并方法:普通合并、压缩合并和变基合并。

场景设定

假设您有一个master分支,其中包含提交M1M2。从M2分支创建了dev分支,在dev分支上开发人员做了提交D1D2D3

Git分支图

1. 普通合并

基本的git merge操作将dev分支的更改完整地合并到master,并保留所有的提交历史记录。

$ git checkout master
$ git merge dev
  • 1
  • 2

普通合并示意图

这会生成一个合并提交 D4',其中包含了来自D1D2D3的更改,同时保留了它们各自的提交历史。

2. 压缩合并

git merge --squashdev分支的所有更改压缩为一个单独的提交,并合并到master,有助于简化复杂的提交历史。

$ git checkout master
$ git merge --squash dev
$ git commit -m "压缩合并dev分支的更改"
  • 1
  • 2
  • 3

压缩合并示意图

这个操作将D1D2D3的所有更改合并成一个单独的提交 D,减少了提交历史的复杂性。

3. 变基合并

git rebase操作可以将dev分支的更改重新应用到master上,保留提交的作者信息,并能够合并提交历史。

$ git checkout dev
$ git rebase -i master
$ git checkout master
$ git merge dev
  • 1
  • 2
  • 3
  • 4

变基合并分为两步:

  • 第一步:执行变基操作,看起来dev分支是从M2分出来的,然后使用 -i 参数手动编辑提交历史,合并或重排提交。
  • 第二步:再执行合并操作,将dev分支合并到master

变基合并示意图

在执行变基时可能会遇到冲突,需要手动解决冲突后继续变基操作,直到完成。如果需要中止变基操作,可以使用 git rebase --abort 命令。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/788161
推荐阅读
相关标签
  

闽ICP备14008679号