Hadoop生态主要是基于GitHub和jira构建开源社区,今年希望可以参与进去,记录使用方法如下。

由于每个开源项目的要求都可能不同,所以在开始之前,必须先阅读其Contribute页面,一般从README里就可以找到链接。

JIRA操作

当有了代码修改想法时,不论是bugfix,还是功能改进,都可以到项目JIRA页面上,提交一个issue,用英文大致描述想要做的事情。这里需要注意两点:

  1. 提交issue前,先用英文关键词search一下,确认该功能没有实现、且没有其他人提交类似issue
  2. issue粒度最好足够细,一个独立的小功能就好,类似我们敏捷中的task卡片。

如果想自己动手提交代码,可以将该issue assign给自己。真正动手时,可以将issue状态修改为 in progress。

GitHub 操作

在正式coding前,得在github上找到该项目,点击fork按钮fork出一个自己的分支,这样后续在这个分支上的工作只要不被管理员merge回去,就不会有任何影响。

git操作

这时可以建立本地代码仓库了:

git clone https://<path-to-your-repo> <your-local-prj-name> 将远端项目拉取到本地

cd <your-local-prj-name>

git checkout -b <new-branch-name> 建立一个分支,该issue相关的功能都会在这个分支里进行(git与svn不同,git的分支很轻量级,可以认为是功能隔离的单位)

git push origin <new-branch-name>提交新分支,这时github上自己的project下这个分支可见、但为空。

这时可以在新分支上编码了,完成并通过自测后,可以先提交到分支上

git add <new-files>

git commit -m ‘comments’

git push origin <new-branch-name> 这时代码在新分支上可见,但放心,不会影响到社区版本

如果编码持续了一段时间,可能需要从社区版本更新代码下来

git remote add upstream https://<path-to-public-repo> 添加社区版本为upstream源

git fetch upstream 下载社区版本的更新到本地隐藏目录

git checkout master 切换到master分支

git merge upstream/master 合并代码到本地master分支

git push origin master 将合并的结果提交到自己远端的master分支

GitHub操作

这时需要让别人看到自己的代码了,在github自己的project页面上,点击 pull request发起请求。在收到别人回复时,可以进行交流、重复代码修改过程。

JIRA操作

这时还需要将pull request与JIRA关联起来,点击issue页面More/Link,添加一个Web Link,将pull reqeust的uri填进去,link text可以写PR #xxx。

最后,当pull request完成,即被merge回社区或被彻底拒绝后,可以在git里删除分支,并且关闭issue。

Leave a Reply