gitee 创建PR
当需要向开源仓库贡献代码时往往没有直接提交到开源仓库的权限,需要通过PR的形式向开源仓库推送代码,再由开源仓库的管理员审核进行合并。
PR(Pull Request),即推送请求。一般是当前仓库推送到目标仓库的合并请求。
创建PR有以下几个流程:可参考文章的目录
[TOC]
【注】:以下以openeuler的开源仓库为例,欢迎向开源社区贡献代码,但不要用与测试PR给审核人员增加负担。
如何创建PR
Fork仓库
Fork仓库是将开源仓库复制到自己的账号下
找到自己想要提交代码的开源仓库,点击右上角的Fork按键
选择要Fork到哪个空间此处选择Fork到自己的账户下。
等待处理,Fork完成后会在个人账户下出现一个同名的仓库
创建分支并提交
将Fork的仓库clone到本地,随后创建分支进行开发
# 克隆仓库
git clone https://gitee.com/<user path>/yocto-meta-openeuler.git
# 创建分支
git checkout -b develop
# 修改代码...
# 创建提交
git add -A
git commit -m "test pr"
# 推送到自己Fork的仓库,推送之后即可在自己的仓库中看到develop分支
git push -u origin develop
创建PR
- 点击Pull Requests

点击新建Pull Request
填写信息,创建PR
此处并没有实际创建,仅做内容展示,后续图片以其他以提交的PR为例,可能与此处信息不符。(不要在开源社区测试)
成功创建PR后会显示,PR的具体信息以及PR的合并进度
后续等待审核,及时关注评论进行必要的修改,等待合并。
修补提交
如果PR的审核员提示我们做一些修改时,我们可以使用修补提交的方式。修补提交不会产生额外的提交记录,是对上一次提交的修改
# 首先将文件正常加入缓冲区,就像真正常进行新提交一样
# 修补提交(提交编号会变,后续需要强制推送)
git commit --amend
git push -f origin master
如何在PR上追加提交
在PR合入之前可进行追加提交,追加提交只需要在创建PR时指定的分支继续提交并推送到自己的仓库即可。开源仓库PR会实时更新提交信息。
PR出现冲突
例如远端开源仓库分支为master
个人仓库推送分支为master
本地修改分支为master
# 开源远程仓库链接
git remote add upstream https://gitee.com/openeuler/yocto-meta-openeuler.git
# fetch开源仓
git fetch upstream
# 变基到开源仓(此时会提示冲突)
git rebase upstream/master
# 在本地合并冲突..
# 添加修改文件到缓冲区
git add -A
# 继续变基(此时可能会显示变基提交信息,变基之后Ctrl+o保存,Ctrl+x退出)(执行后会产生一次新提交)
git rebase --continue
# 强制推送到Fork的个人仓库(强制推送是因为本地变基了)(此时开源仓库的PR中合并冲突的提示就会消失)
git push -f origin master