git merge的三种操作merge, squash merge, 和rebase merge
·
0. 概要
在Git中,合并分支是将一个分支的更改集成到另一个分支的基本操作。让我们通过一个实际的示例场景,探讨三种常见的合并方法:普通合并、压缩合并和变基合并。
场景设定
假设您有一个master分支,其中包含提交M1和M2。从M2分支创建了dev分支,在dev分支上开发人员做了提交D1、D2和D3。

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

这会生成一个合并提交 D4',其中包含了来自D1、D2和D3的更改,同时保留了它们各自的提交历史。
2. 压缩合并
git merge --squash将dev分支的所有更改压缩为一个单独的提交,并合并到master,有助于简化复杂的提交历史。
$ git checkout master
$ git merge --squash dev
$ git commit -m "压缩合并dev分支的更改"

这个操作将D1、D2和D3的所有更改合并成一个单独的提交 D,减少了提交历史的复杂性。
3. 变基合并
git rebase操作可以将dev分支的更改重新应用到master上,保留提交的作者信息,并能够合并提交历史。
$ git checkout dev
$ git rebase -i master
$ git checkout master
$ git merge dev
变基合并分为两步:
- 第一步:执行变基操作,看起来
dev分支是从M2分出来的,然后使用-i参数手动编辑提交历史,合并或重排提交。 - 第二步:再执行合并操作,将
dev分支合并到master。

在执行变基时可能会遇到冲突,需要手动解决冲突后继续变基操作,直到完成。如果需要中止变基操作,可以使用 git rebase --abort 命令。
更多推荐
所有评论(0)