如何成为一名开源贡献者

3,120 阅读6分钟

如何成为一名开源贡献者

前言

  1. 如果没有基础开发经验的开发者可以先不看这里,可以先解决个人基础问题

  2. 要有git操作经验(最好是熟练),有github账号(或其他版本控制平台),本地有node(部分开源项目不需要),可以进行相关项目开发的环境

理论上如何成为一名开源贡献者

  1. 如果还没有开源贡献者邀请,就去找一些感兴趣的开源项目、开源社区,参与进去,在里面回答问题、交流,或直接找开源作者,直接参与

  2. 一般这样之后一段时间便有开源作者邀请成为开源贡献者,因为成为开源贡献者很简单,但具体难度要看项目情况,最简单是项目就是资源整理,参与一些技术资源、技术问答等文字和简单代码的整理,这种就很简单

  3. 进一步就是框架/库/插件这类难度比较大的开源项目,实际上我们可以直接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)

  1. 这一步是将我们贡献的内容提交给开源作者,也就是提醒他我做了这个更新,将对应的分支交个他合并到开源项目

  2. 我们到我们github的developer-note项目中,可以看到issue旁边有个Pull request,点击进去我们新建Pull request

  3. 然后我们就在最后边的分支选项中选择我们要提交的分支,选中后检查一下下面内容的变更,然后就可以Create pull request创建PR

  4. 之后我们就能在开源作者的项目中看到一条pull request记录,开源作者会检查(review代码)我们贡献的内容,正常由他合并到开源项目中

  5. 没有问题后,有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中直接进行讨论,然后根据讨论的解决方案提交一个新的提交,操作流程一样

完成合并,删除分支

  1. 如果开源作者发现我们贡献的内容没有问题,就可以提交到master分支,或者测试分支综合测试

  2. 提交完我们可以通过分支查看是否已经将更新合并上去

  3. 完成合并后我们关闭当前pull request并删除该分支,开源贡献者直接pull开源项目最新代码就能查看到我们贡献的代码

git pull upstream master
  1. 其他相关后续操作:例如关闭issue等

结束语

自此,我们以及完成开源贡献,我们也正式成为一名开源贡献者
  • 其实我们能发现,这个步骤很简单,几乎没有任何限制,任何一个人都可以成为开源贡献者,对开源作者来说没有任何负面影响

  • 众人拾柴火焰高,一般来说一个人想要做大事还是很难的,但是一群人做成一件事其实还是相对比较简单的,如果我们想要完成一个比较复杂的事情,我们完全可以通过开源项目来实现,包括一个项目、一个平台、一个好的资源收集、一个好的交流社区

  • 并且现在国内国外非常提倡开源贡献,这既是社需求,也源于我们渴望牛B的心

在线博客文章地址

参考:成为贡献者 | 【译】如何开始成为我们开源工程的贡献者(unity) | 合并 pull request(Merging a pull request)