这是 论如何参与一个开源项目 系列的最后一篇文章,前面的文章可以通过下面的链接访问
【上】参与的意义和如何提issue:https://blog.csdn.net/little_stick_i/article/details/127162039
【中】Fork仓库和编写代码:https://blog.csdn.net/little_stick_i/article/details/127170890
【下】创建PR和代码审查:https://blog.csdn.net/little_stick_i/article/details/127176171
本篇我们要讲的是如何开始向开源项目提交代码以及提交后应该注意些什么,没有看前几步的同学可以先去看一下上篇和中篇的内容噢!
到这一步,我们已经准备好将自己写的代码提交到主仓库了,但由于我们没有主仓库的操作权限,所以是无法直接提交到主仓库的。
这时,我们需要创建一个 Pull Request
(俗称PR),意思是请求主仓库的所有者从你的仓库中拉取代码合并到主仓库中。
还记得我们之前创建或者认领的那个issue吗,如果我们此时要提交的代码已经解决了这个issue所涉及的问题,那我们就可以在PR当中把这个issue关闭了,只需要在我们等会要填写的描述信息里加上 “close #78” 就可以了,78指的是那个issue的编号,可以在它的页面上看到:
我们可以在GitHub的页面上进行操作,也可以在idea上进行操作,我个人更喜欢在idea上操作。
进入到我们的仓库主页,可以看到上面提示说我们的分支领先于主仓库的main分支:
点击Contribute,然后点击Open pull request:
此时系统会自动帮我们跳转到创建PR的页面,填写完提交信息,指定从哪里合并到哪里(一般是选择从我们自己仓库的main分支合并到主仓库的dev分支),点击Create pull request
即可:
PS:这是由GitHub插件提供的功能,只支持GitHub的PR管理。
找到并打开 视图 -> 工具窗口 -> 拉取请求:
这里选择主仓库,因为我们是要对主仓库发起PR,然后点击查看拉取请求:
点击设置旁边的加号,开启一个新的PR:
指定从自己仓库的main分支合并到主仓库的dev分支,填写标题和描述,点击创建拉取请求即可:
当项目管理员收到你提交的PR后,他会对你提交的代码进行审查。 说白了就是查看你写的代码,并考虑其中写的好的和写的不好的地方,然后给你提出意见和建议。
作为贡献者,我们需要根据管理员的意见进行代码的修改,或者 (跟他掰扯掰扯) 跟管理员解释我们为什么要这样写,这样写的目的是什么,总之,你们两协商并达成一致就可以了。
那当我们修改完代码后,再提交到自己的仓库中 之前用来创建PR的那个分支,之前创建的PR就会被自动更新了,不需要我们再开启一个PR(除非之前的PR被关闭了)。
那如果我们的代码通过了审查,它就会被合并到主仓库中,这时候我们的一次代码贡献就算是完成啦!你会被列在项目的贡献者列表中,就像这样:
终于把【参与开源项目】这个问题写完了,看完这整套流程,可能很多朋友会想,参加开源项目咋这么麻烦,那我还是不参加了。
我写这篇文章的时候也觉得麻烦,咋这么难写,写了我好几天,可能是因为我 太菜 写的太详细了哈哈哈哈哈哈哈。
但平时我参与项目贡献的时候,其实并没有觉得有什么麻烦的地方,也就是点几下点几下,很快就搞定了,时间主要都花费在了提问、沟通和写代码上,并没有在这些杂七杂八的流程是浪费什么时间。而且这套流程中有几步其实是只要做一次的,真正需要每次都操作的,其实只有写代码、创建PR和同步仓库。
怎么说呢,自己尝试一下,把这套流程操作一遍,或者去参加一个开源项目(欢迎来校园博客),自己从头到尾操作一遍之后,就没什么问题了,以后再想去参加各种开源项目,至少流程都懂了。
对了,如果你看了这篇文章之后还想了解得更多,可以再看看这位作者的文章,我觉得写得挺好的,分享给大家:https://mp.weixin.qq.com/s/mY-1mDFvBkyHGBgI9KpGOA
如果这个系列的文章对你有帮助,那就赶快去找个合适的开源项目试一试吧!从实践中去练习这些步骤,会让你对它的理解更加深刻噢!