gitee 创建PR

当需要向开源仓库贡献代码时往往没有直接提交到开源仓库的权限,需要通过PR的形式向开源仓库推送代码,再由开源仓库的管理员审核进行合并。

PR(Pull Request),即推送请求。一般是当前仓库推送到目标仓库的合并请求。

创建PR有以下几个流程:可参考文章的目录

[TOC]

【注】:以下以openeuler的开源仓库为例,欢迎向开源社区贡献代码,但不要用与测试PR给审核人员增加负担。

如何创建PR

Fork仓库

Fork仓库是将开源仓库复制到自己的账号下

  1. 找到自己想要提交代码的开源仓库,点击右上角的Fork按键

    image-20240417113154381
  2. 选择要Fork到哪个空间此处选择Fork到自己的账户下。

    image-20240417113345876
  3. 等待处理,Fork完成后会在个人账户下出现一个同名的仓库

    image-20240417113703455

创建分支并提交

将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

  1. 点击Pull Requests
image-20240417114525118
  1. 点击新建Pull Request

    image-20240417114647213
  2. 填写信息,创建PR

    此处并没有实际创建,仅做内容展示,后续图片以其他以提交的PR为例,可能与此处信息不符。(不要在开源社区测试)

    image-20240417115012001
  3. 成功创建PR后会显示,PR的具体信息以及PR的合并进度

    image-20240417115833189
  4. 后续等待审核,及时关注评论进行必要的修改,等待合并。

修补提交

如果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

参考文章

  1. 什么是git pr
  2. git修补历史提交
  3. 如何解决Gitee提交pr冲突
0%