拿来即用 的特质项目开源 都是 只闻其概念,不见其本质,大多数人都只停留在 观望阶段,这也与国内的开源环境有关,阻止国内程序员参与开源的一个重要的原因不是 技术能力 的限制,而是 英语水平 的限制提 PR 了成就感。更深刻熟练的运用自己的技能,也可以获得更好的 认可度和知名度,建立更 广大的人脉
不要选择特别成熟的开源项目、不要选择小规模的开源项目、尽量选择知名开源软件基金会的孵化项目Apache 基金会、Linux 基金会、CNCF 等。
issues 板块,这里标注了该项目中还存在的各种各样的 漏洞、文档完善、测试用例完善、bug 反馈 等等,等待着各位开源者一起去完善,共同将该项目的 issues 板块清空envoyproxy/envoy 开源项目为例,在这里可以看到很多待处理的问题,并且每个问题后面标注了显眼的标签,比如 bug、triage、enhancement等等bug 问题,可以点击 bug 标签,出来的全是 bug标签 的待解决问题了
CONTRIBUTING.md 文件,这个文件会详细介绍如何开始当前的项目,感兴趣的可以自己去看看issues列表 后,找到一个自以为可以解决的问题,点进去可以查看详情issues要求后,你觉得你可以解决的话,就可以给管理员留言
fork 该仓库,将该仓库 fork 到自己的账号下fork 到自己的账号下,意味着你有修改仓库里面文件的权限了提交 PR 就是将你修改的内容推送到自己 fork 出来的代码中,然后再通过 Pull Request 将其合并入上游项目中即可

fork 过来的项目,拉取到本地SSH 方式,也可以实用 HTTPS 模式origin,然后通过 origin 提交 Pull Request 到 upstream# 拉取项目
git clone https://github.com/autofelix/envoy.git
# 进入项目目录
cd envoy
# 配置上游仓库
git remote add upstream https://github.com/envoyproxy/envoy.git
git remote set-url --push upstream no_push
# 配置完成后,查看是否正确
git remote -v
# 结果如下
origin git@github.com:autofelix/envoy.git (fetch)
origin git@github.com:autofelix/envoy.git (push)
upstream https://github.com/envoyproxy/envoy (fetch)
upstream no_push (push)
upstream 一致PR,可以直接在main 分支进行开发,但是当你爱上了开源,我相信你不会仅仅只会提交一个 PR,总之鼓励你通过创建分支去提交 PR,完成开源工作,会更加的规范# 代码跟上游同步
git fetch upstream
git checkout main
git rebase upstream/main
bug,我建议你创建 fix 分支 git checkout -b fix-xxx,如果是文档类更新可以创建 docs-xxx,其他建议创建 chore-xxx,不同类型的 issues 创建不同的分支,清晰明了bug 后,通过以下命令进行 pushgit add <file>
git commit -s -m "some description here"
git push origin fix-xxx
push 之后,打开 GitHub,可以看到一个提示框,系统告诉我们可以开一个 Pull Request 了PR 回复模板一般不同这次PR的标题,修改了哪些地方,怎么测试的,解决了什么问题等等PR 之后,我们就可以在 PR 列表里找到自己的 PR 了,不过需要注意的是 ci 检查 是不是全部能够通过,假如失败了,需要及时修复出错的修复,重新提交PR 很完美,不出很长时间,管理员就会直接将你的 PR 合并到项目中,那么这一次的开源生命周期到此也就结束了,你可以重新寻找新的 issues 去完成
