Please enable Javascript to view the contents

GitHub 三种合并代码方式的差别

 ·  ☕ 1 分钟

1. Create a merge commit

PR Commit 记录:

1
2
commit c1
commit c2

集成分支 Commit 记录:

1
2
3
commit PR #NUM
commit c2
commit c1

Create a merge commit 会将 PR 中的全部 Commit 记录完整带到集成分支中,同时增加一条 PR Commit 信息。

2. Squash and merge

PR Commit 记录:

1
2
commit s1
commit s2

集成分支 Commit 记录:

1
commit PR #NUM

Squash and merge 合并之后,集成分支只会增加一条 Commit 记录。观感不错,同时对具有多条 Commit 记录的 PR 友好,值得推荐。 PR 的标题和备注都可以在集成分支直接查看。

3. Rebase and merge

PR Commit 记录:

1
2
commit r1
commit r2

集成分支 Commit 记录:

1
2
commit r2
commit r1

Rebase and merge 会将 PR 中的全部 Commit 记录完整带到集成分支中。另外如果开发分支没有 Rebase ,继续提交 PR 记录会是这样:

1
2
3
4
commit r1
commit r2
commit new1
commit new2

但已经合并的代码不会再次合并,只是影响 PR Commit 记录的观感。


微信公众号
作者
微信公众号