在github中提交PR(PullRequest)

Posted aguncn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在github中提交PR(PullRequest)相关的知识,希望对你有一定的参考价值。

现在开始学习远程合作模式了。。

按下面这个URL,完全搞定。

https://blog.csdn.net/vim_wj/article/details/78300239

 

========================原文分割线===============

 

本文主要是根据自己在摸索提交pr的程中的一些总结。

简单过程
首先git分为本地仓库(自己电脑中)和远程仓库(git官网自己的账号中),仓库可以理解为保存代码的地方,简单的说是在自己本地仓库修改代码,提交到自己远程仓库,提交pr后被接受后再会被合并到master。

下面一步一步来。

详细过程
申请账号、添加ssh公钥等过程就不说了哈。

fork
将项目fork到自己的仓库中,可以在github的首页搜索到自己的想要的开源项目,我以flink为例:

 

进去后,点出fork,稍等片刻,此项目便会出现在自己的仓库中

 

进到自己fork的项目中,就能看到Clone or download按钮,如下,记下这个https链接。

 

通过上面的步骤,已经将远程仓库建好

clone
需要将远程仓库clone到本地,此处省略安装本地github的过程,随便在哪个目录(项目存放的目录),右键打开一个Git base,执行一下git clone https://github.com/***/***.git(使用上一步的https链接),等待命令完成,时间视下载速度而定,也许会比较慢,网上也有些可以提高git clone速度的方法,不防一试。

 

上面的命令完成后,当前目录下会多一个目录,我clone的是flink,所以会多一个flink目录,进到flink目录中,试试跑一下git status试试,会提示现在是master分支。

 

用git remote -v命令,可以看到此时只与自己的远程仓库建立了连接

 

还需要与上游建立连接,这里上游指的是一开始fork的那个项目源,以flink为例,执行如下命令:

git remote add upstream https://github.com/apache/flink.git

再用git remote -v可以看到:

 

接下来就能创建分支了。

创建分支
接着上面的运行命令:git checkout -b flink-fs,这个命令的意思是创建一个叫flink-fs的分支,运行这个命令后bash将自动切换到新的分支下

修改代码
自行修改代码哈

提交
可以先使用git status来查看有哪些文件被修改了

 

然后再git add ***.java将要提交的文件都加上

然后再git commit -m "modify XX",需要注意的是git commit只是把修改的代码提交到当前分支(当前分支是flink-fs,而不是master),”modify XX”是本次提交的简单说明

然后再git push origin flink-fs,这一步才是将当前分支推送到自己的远程仓库。

这时,在自己的远程仓库便能看刚才push上去的分支了

提交pr
找到New pull request

 

需要注意的是compare处选择刚才提交上来的分支

 

然后点Create pull request

写好名字,写好说明,提交,就OK啦。

 

关于check不通过的问题
github有代码自己编译和check机制,在你提交pr的时候,项目可能已经有了比较大的变更(每天都有世界各地的coder提pr),而你没有将分支保持与项目同步,所以有可能会导致check失败,pr被无视。

还记得我们在自己本地有一个flink master分支,然后又拉了一个flink-fs分支,然后在flink-fs上进行修改,提交的也是flink-fs,然后又想起了之前有一步是“与上游建立连接”,说到你可能已经知道了master的作用–用于远程代码同步。

所以每次提交pr前,都要先从做代码同步。过程如下:

先fetch


再rebase

 

再push master

 

push完后,远程仓库便可看到你的branch版本和master分支一致了,否则这个位置会显示与master相差了多少次commit。

 

做完这些操作,就可以回到之前的详细过程来操作了。

以上是关于在github中提交PR(PullRequest)的主要内容,如果未能解决你的问题,请参考以下文章

参与Github jdk8u开源,提交一个PR

一文读懂如何使用PyCharm为飞桨提PR

一文读懂如何使用PyCharm为飞桨提PR

github上的回复上单词缩写含义

技术派-github常见的一些用法和缩写

Github 常见缩写含义 WIP/LGTM/AFAIK