logo
blog
readme
Back to Blog
Back to Blog
Back to Blog

‌

‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌
‌

© 2025 linzhe. All rights reserved.

TODO:编辑

github三种合并PR的方式

1、Create a merge commit

在fork的仓库里创建一个test-create-a-merge-commit的分支,并进行了几次commit,紧接着也创建一个对应的PR

github-pr-create-a-merge-commit-1

Reviewer在合并PR时,选择Create a merge commit,github会出现一个表单,可输入这个PR的相关信息, 这种方式会把所有的提交通过一个merge commit添加到main分支了,就类似git merge命令

github-pr-create-a-merge-commit-2

成功合并后

github-pr-create-a-merge-commit-3

2、Squash and merge

在fork的仓库里创建一个test-squash-and-merge的分支,并进行了几次commit,紧接着也创建一个对应的PR

github-pr-squash-and-merge-1-1

Reviewer在合并PR时,选择Squash and merge,github会出现一个表单,可输入这个PR的相关信息, 这种方式会在main分支上,把所有的提交压缩成一个commit,git log的记录比较优雅一些

github-pr-squash-and-merge-2

成功合并后,注意下面几个commit,是第一种合并方式的结果,这种方式的结果就是箭头指向那个,只会存在一个commimt

github-pr-squash-and-merge-3

3、Rebase and merge

在fork的仓库里创建一个test-rebase-and-merge的分支,并进行了几次commit,紧接着也创建一个对应的PR

github-pr-rebase-and-merge-1-1

Reviewer在合并PR时,选择Rebase and merge,这次github就不会出现一个表单了, 因为这种方式会把所有的提交通过rebase的方式添加到main分支上,也就是直接使用对应的日志了

github-pr-rebase-and-merge-2

成功合并后,注意最下面那个commit,是第二种合并方式的结果

github-pr-rebase-and-merge-3

根据这三种合并策略,感觉第二种最为简单 推荐流程:PR的分支通过rebase合并main,然后main在通过squashand merge合并PR

github-pr-merge-tips