简介
参与开源项目的讨论与维护,对自己的成长是很有帮助的,这其中提交PR(pull request)是最重要的手段之一,所以本文就通过笔者的一次PR提交演示整个操作过程。
操作步骤
fork并克隆到项目到本地
为了能够操作开源作者的项目,我们必须fork作者的项目到自己仓库中才能进行操作。

将项目fork到自己的仓库之后,我们就需要将项目clone到本地,开始着手自己的修改操作。
创建自定义分支
完成项目克隆之后,我们可以使用IDEA或者GIT管理工具创建一个新的分支,以使用命令的方式为例,使用下面的命令行git checkout -b 分支名称即可实现创建并切换到新分支,以笔者为例,创建一个名为shark-branch的分支就如下所示:
git checkout -b test-branch当然笔者作为Java开发,日常对分支管理都是使用IDEA,所以笔者这里也演示一下如何用IDEA创建并切换到新分支
首先我们在IDEA中打开项目,然后点击右下角,找到new branch选项,然后点击加号

然后输入我们的新分支的名称,勾选checkout branch并点击OK也可以实现创建并切换到新分支。

更新代码(重点)
这一步可能非必要,但是为了教程的完整性还是需要提一嘴,我们fork的项目可能因为长时间没有理会,导致我们仓库的更新无法及时获得,所以我们需要手动做一下拉取。
这里笔者以IDEA配合命令行的方式为例,演示更新fork的仓库。
切换分支
为了避免操作失误影响到我们的主干分支,我们建议切换到别的分支操作,等成功了再合并到主分支。
所以笔者通过IDEA切换到别的测试分支。

将上游仓库设置为开源作者的仓库
为了拉取作者的更新,我们必须创建一个上有分支去拉取作者的更新,若使用命令行的分支我们可以在项目的路径中使用下面这个命令完成:
git remote add upstream [原始项目的仓库URL]这里笔者以IDEA为例,到IDEA中找到VCS选择remote设置上游分支。

然后点击添加创建上游分支

然后输入创建一个名为upstream的远程分支,地址填写开源作者仓库的地址即可。

自此我们配置都算完成了,接下来就是拉取作者的更新了。我们可以在IDEA中终端输入下面这段命令拉取作者的更新
git fetch upstream完成拉取之后,我们即可获取到作者近期的所有更新,为了能够将作者的更新同步到我们的分支上,我们点击IDEA右下角找到upstream分支选择merge into current将作者的更新合并到我们的分支上。自此所有的同步工作就完成了。

确认上述操作无误之后,如果我们希望自己的主干分支也要拉取最新代码,可以按照上述步骤切换到main分支,同样基于上述操作将upstream的代码merge into current完成更新同步。
对开源项目进行修改,完成后push到自己的仓库中
对我们需要进行修改的文件进行相应修改,将修改提交到自己fork的仓库上,这里笔者因为是IDEA操作的缘故,所以commit和push都是基于GUI操作的

完成push后显示如下所示

到远程仓库提交PR(重点)
完成上述步骤后,你的代码就提交到远程仓库,此时登录GitHub访问你的仓库,就会发现仓库上方会显示下面这样一段文字,意为你的分支有对开源项目有做修改操作,所以我们点击Compare & pull request,进行PR提交

进入下图所示界面,我们可以对这个提交进行相应描述,完成后点击create pull request即可完成操作。

参考文献
















