Hadoop生态主要是基于GitHub和jira构建开源社区,今年希望可以参与进去,记录使用方法如下。
  由于每个开源项目的要求都可能不同,所以在开始之前,必须先阅读其Contribute页面,一般从README里可以找到链接。
  JIRA操作
  当有了代码修改想法时,不论是bugfix,还是功能改进,都可以到项目JIRA页面上,提交一个issue,用英文大致描述想要做的事情。这里需要注意两点:
  提交issue前,先用英文关键词search一下,确认该功能没有实现、且没有其他人提交类似issue
  1、issue粒度好足够细,一个独立的小功能好,类似我们敏捷中的task卡片。
  2、如果想自己动手提交代码,可以将该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。