github三种合并PR的方式的区别

950 阅读1分钟

github提供了三种合并pr的途径,分别是Create a merge commitSquash and mergeRebase and merge

1、Create a merge commit

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

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

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

github-pr-create-a-merge-commit-2.jpg 成功合并后

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

2、Squash and merge

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

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

github-pr-squash-and-merge-2.jpg

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

github-pr-squash-and-merge-3.jpg

3、Rebase and merge

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

github-pr-rebase-and-merge-1.jpg

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

github-pr-rebase-and-merge-2.jpg

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

github-pr-rebase-and-merge-3.jpg