如何成为一名开源贡献者
前言
-
如果没有基础开发经验的开发者可以先不看这里,可以先解决个人基础问题
-
要有git操作经验(最好是熟练),有github账号(或其他版本控制平台),本地有node(部分开源项目不需要),可以进行相关项目开发的环境
理论上如何成为一名开源贡献者
-
如果还没有开源贡献者邀请,就去找一些感兴趣的开源项目、开源社区,参与进去,在里面回答问题、交流,或直接找开源作者,直接参与
-
一般这样之后一段时间便有开源作者邀请成为开源贡献者,因为成为开源贡献者很简单,但具体难度要看项目情况,最简单是项目就是资源整理,参与一些技术资源、技术问答等文字和简单代码的整理,这种就很简单
-
进一步就是
框架/库/插件
这类难度比较大的开源项目,实际上我们可以直接fork
参与,根据我们想要的对源项目进行修改,解决bug或新增内容,剩下给开源作者审核就好,操作很简单,看下面就知道了
贡献内容操作流程
1. 我们被通知/自主参与一个项目开发
- 一般我们都会加群进行社区交流,或直接贡献(这个独立开发者可以操作一波,感觉这样容易成为大牛)
2. fork项目
- 在github开源项目
右上角
就有一个fork
按钮(没有就是找错地方了),点击fork就能将项目克隆到我们个人github账号(假设叫做developer-note
),这时我们就可以在我们个人github账号的Repositories
找到这个developer-note
项目,我们拥有全部修改权限,当然对原开源项目没有任何影响,是两个仓库
拉到本地,关联开源项目
# 首先克隆我们的github项目到本地
git clone git@github.com:我们的github名/developer-note.git
# 关联开源项目,注意这个`upstream`就代表关联上一级仓库,而`origin`表示我们自己的远程库
git remote add upstream git@github.com:BrucePhoebus/developer-note.git
创建分支,开发贡献
- 一般我建议每次贡献都根据内容创建一个开发分支,例如:dev-20190905,完全可以参考原有项目开发分支命名或根据本次贡献内容命名
# 先拉取最新开源项目更新,此时我们在本地master分支
git pull upstream master
# 然后创建我们的开发分支,等同于 git checkout -b dev-20190805
git branch dev-20190805 # 创建分支
git checkout dev-20190805 # 切换到开发分支
# 我们新增完内容就可以提交到我们的远程仓库,注意是我们origin自己github的远程仓库
git push origin dev-20190805
- 这时我们已经开发完一个版本了,我们去github上就是看到最新的提交,下一步便是PR(pull request)将更新提交给开源作者
pull request(PR)
-
这一步是将我们贡献的内容提交给开源作者,也就是提醒他我做了这个更新,将对应的分支交个他合并到开源项目
-
我们到我们github的
developer-note
项目中,可以看到issue旁边有个Pull request
,点击进去我们新建Pull request
-
然后我们就在最后边的分支选项中选择我们要提交的分支,选中后检查一下下面内容的变更,然后就可以
Create pull request
创建PR
了 -
之后我们就能在开源作者的项目中看到一条
pull request
记录,开源作者会检查(review代码)我们贡献的内容,正常由他合并到开源项目中 -
没有问题后,有pull权限的开源作者点击
Merge Pull request
选项,根据需要选择合并方式-
将所有提交合并到基础分支:通过点击 Merge pull request。如果没有展示 Merge pull request 选项,则点击合并下拉菜单,然后选择 Create a merge commit
-
压缩合并 pull request 的提交:通过合并下拉菜单,选择 Squash and merge,然后点击 Squash and merge 按钮
-
将提交单独变基到基础分支上:通过合并下拉菜单,选择 Rebase and merge,然后点击 Rebase and merge 按钮。
-
注:合并操作跟我们正常项目合并分支类似,但是一般都是review在github上操作,直接点击合并到指定的分支,但是可能出现点问题
-
如果出现冲突问题,这个问题比较简单常见,安装git解决冲突流程就能解决
-
发现存在bug,我们可以直接在pull request中直接进行讨论,然后根据讨论的解决方案提交一个新的提交,操作流程一样
完成合并,删除分支
-
如果开源作者发现我们贡献的内容没有问题,就可以提交到master分支,或者测试分支综合测试
-
提交完我们可以通过分支查看是否已经将更新合并上去
-
完成合并后我们关闭当前
pull request
并删除该分支,开源贡献者直接pull开源项目最新代码就能查看到我们贡献的代码
git pull upstream master
- 其他相关后续操作:例如关闭issue等
结束语
自此,我们以及完成开源贡献,我们也正式成为一名开源贡献者
-
其实我们能发现,这个步骤很简单,几乎没有任何限制,任何一个人都可以成为开源贡献者,对开源作者来说没有任何负面影响
-
众人拾柴火焰高
,一般来说一个人想要做大事还是很难的,但是一群人做成一件事其实还是相对比较简单的,如果我们想要完成一个比较复杂的事情,我们完全可以通过开源项目来实现,包括一个项目、一个平台、一个好的资源收集、一个好的交流社区 -
并且现在国内国外非常提倡开源贡献,这既是社需求,也源于我们渴望牛B的心
参考:成为贡献者 | 【译】如何开始成为我们开源工程的贡献者(unity) | 合并 pull request(Merging a pull request)