欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何进行开源贡献

程序员文章站 2022-07-10 18:39:25
...

名词介绍

开源贡献提交是在 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账号必不可少。

  1. 准备jira账号,通过 https://issues.apache.org/jira/secure/Signup!default.jspa 注册,请记住JIRA ID,已有账号可直接登录。
  2. 查看HUDI所有issue(https://issues.apache.org/jira/projects/HUDI/issues)。
  3. 若有合适的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

相关标签: 开源 github