如何进行开源贡献
如何进行开源贡献
名词介绍
开源贡献提交是在 GitHub 上进行操作,先熟悉几个专用名词。
Repository
Repository 是 Github 上最基本的元素,可以理解为一个项目文件夹,称为“仓库”或“库”。
Issue
Issue 一般出现在项目主页里,主要是大家提的一些建议,或者想反馈一些问题,可以提交Issue。
Pull Request
简称为 PR,指用户针对某个问题,或者更新一些东西所提交的申请。PR 是对开源项目进行贡献的必经之路,提交一个 PR,才有可能成为 contributor。一次 PR 可以进行多次 commit,因为不能保证修改的代码一次成功,可根据编译报错日志,或者 commiter 提出的修改建议,进行再次提交。
Fork
提交 PR 的前提,需要先 Fork 项目,可理解为复制项目。点击 Fork,可以将一个 repository 复制一份到个人账户下。
一、准备工作
本文以 Apache Hudi 为例,详细介绍如何进行开源贡献,其他开源项目贡献流程类似。
1.1 Github准备
1) 注册 Github 账号
(略)
2) fork项目
此操作将 Apache Hudi(https://github.com/apache/incubator-hudi)项目复制到个人远程仓库。
3)克隆
进入个人 GitHub 主页,复制链接,克隆到本地目录。
git clone https://github.com/username/incubator-hudi.git
4)添加upstream
进入项目目录,添加 Apache Hudi 为 upstream
// 进入项目目录
cd incubator-hudi/
// 与上游建立连接,上游是指一开始 fork 的项目源
git remote add upstream https://github.com/apache/incubator-hudi.git
添加完 upstream 后,执行 git remote -v 进行验证,如下图所示,即为配置成功。
5)配置用户名和邮箱
// 配置用户名和邮箱
git config user.name xxx
git config user.email xxx
1.2 邮箱订阅
为了更好的参与社区讨论,需订阅aaa@qq.com开发者邮箱列表。
订阅方式:向aaa@qq.com发送一封空邮件,然后马上会收到aaa@qq.com回复的一封邮件,然后对该邮件再点击最下方的回复按钮进行一次回复即可。
1.3 JIRA准备
几乎所有Apache*项目都是通过JIRA来管理issue,所以注册JIRA账号必不可少。
- 准备jira账号,通过 https://issues.apache.org/jira/secure/Signup!default.jspa 注册,请记住JIRA ID,已有账号可直接登录。
- 查看HUDI所有issue(https://issues.apache.org/jira/projects/HUDI/issues)。
- 若有合适的issue,可点击右侧的Assign to me(分配给我),对于较为复杂的issue,可在issue下评论讨论实现思路,确保达成一致后再开始写代码。
若登录后发现无 Assignto me(分配给我)按钮,那么需要向 aaa@qq.com 邮箱发送一封JIRA权限开通申请邮件,可参照如下模版发送:
Hi,
I want to contribute to Apache Hudi.
Would you please give me the contributor permission?
My JIRA ID is xxx.
之后会收到项目 PMC 的回复邮件,如下图所示,即已完成相应权限的开通。
二、提交代码
2.1 创建checkout分支
基于 master 分支 checkout 出一个新分支
// 进入项目目录
cd incubator-hudi/
// 新建 redoclientlog 分支
git checkout -b redoclientlog
然后在该分支上进行修改,可从简单的问题入手,如单词拼写错误,先熟悉流程。之后可对稍微复杂点或者自己感兴趣的问题进行贡献。
2.2 将代码push个人远端仓库
本地修改完成后,将代码 push 到个人远程仓库,执行如下命令:
git add .
git commit -m "备注信息"
git push origin redoclientlog:redoclientlog
2.3 创建PR
上述步骤完成后,进入 Apache Hudi 的 Github 页面,会出现 Compare & pull request 按钮。
然后点击 Compare & pull request,补充PR描述信息后,点击 Create pull request 即可。
2.4 等待review
到这里,已经完成提交 PR 的过程,后续等待社区 commiter 帮忙 review 代码,根据意见修改代码,最终没问题后 merge PR。当 PR 合并后,即可成为该开源项目的 contributor。
三、同步项目源代码
过一段时间后,Apache 仓库的代码又有开发者提交新的更新,此时需要将本地代码与之进行同步,以下步骤介绍如何与源项目保持同步。
1.把远程分支upstream拉取到本地
git fetch upstream master
2.合并远程原始分支upstream代码
git merge upstream/master
3.把最新代码push到个人github上
git fetch upstream master
执行上述三个步骤,即可与 Apache 仓库 master 分支保持同步。
参考
[链接] https://mp.weixin.qq.com/s/I12axUR-zQvgPtJcZYWA6w
[链接] https://mp.weixin.qq.com/s/2Ltj55JRk5x5qZU-SifYRg
上一篇: 趣味数学--贷款计算
下一篇: java单词随机产生
推荐阅读
-
如何在大型的并且有表分区的数据库中进行DBCC CHECKDB操作
-
怎样用ps处理照片 如何用ps进行照片处理
-
获得图片的二进制,如何进行图片缩略
-
不用写代码 你也能为开源作出贡献 博客分类: 其他 百度LinqGoogle生活活动
-
不用写代码 你也能为开源作出贡献 博客分类: 其他 百度LinqGoogle生活活动
-
如何在Java程序中访问mysql数据库中的数据并进行简单的操作
-
Oracle如何对sys用户进行审计(Oracle on Windows)
-
Python正则表达式如何进行字符串替换实例
-
探讨:如何使用委托,匿名方法对集合进行万能排序
-
下面这段代码如何进行htmlentities()之类的html过滤