[译] 为 GitHub 项目作出贡献的初学者指南

这是一个针对于如何在 GitHub 上贡献开源代码的新手指南。该指南主要基于我看到 Zend FrameworkSlim Frameworkjoind.in 它们如何操做。可是,这仅仅是一个通用的指南,所以请先检查项目的 README 文件以了解具体状况。html

第 1 步:在你的计算机上设置工做副本

首先你须要这个项目的本地克隆,因此先在 GitHub 中按下“fork”按钮。按下按钮后会自动在你的 GitHub 帐户中建立一个该项目仓库的副本,并且你会看到在已经被 fork 成功的项目名称下面有一行注释:前端

Forked

如今你须要一个本地副本,所以在右侧列中找到“SSH clone URL”,并使用它在本地终端进行克隆:android

$ git clone git@github.com:akrabat/zend-validator.git
复制代码

以下图所示:ios

Clone

转到新项目所在目录中去:git

$ cd zend-validator
复制代码

最后,在这个阶段,你须要设置一个指向原始项目的新远端地址,以便你能够抓取原始项目的任何更改并将它们更新至本地副本。首先定位到原始项目的连接 —— 它在 GitHub 页面的顶部,经过“fork from”标记。该连接会将你带回原始项目的 GitHub 主页,所以你能够在该页面找到“SSH clone URL”,并使用它去建立新的远端,咱们称之为 upstreamgithub

$ git remote add upstream git@github.com:zendframework/zend-validator.git
复制代码

你如今在磁盘上拥两个此项目的远端:后端

  1. origin:它指向你 fork 的 GitHub 项目。你能够向该远端提交和拉取更新。
  2. upstream:你只能从这个上游的远端拉取代码更新,而没法对其进行修改。

第 2 步:开始作出贡献吧

这是你为项目做出贡献时最有趣的一步。一般状况下,最好从修复一个使人讨厌的 bug 开始,或者是你在项目的 issue 跟踪器中找到的问题。若是你正在寻找一个开始的地方,不少项目使用“easy pick“标签(或者相近意思的标签)来代表这个问题能够由刚刚接触此项目的人来解决。浏览器

分支

第一法则是将每一份修改工做都放到本身的分支上。若是项目使用 git-flow,那么它将同时拥有一个 master 和一个 develop 分支。通常的规则是,若是你是修复 bug,那么从 master 上拉下新分支。若是你正在添加一个新功能,那么从 develop 上拉下新分支。若是该项目只有一个 master 分支,直接从该 master 拉取新分支。有一些项目,如 Slim 使用以版本号命名的分支(2.x 和 3.x)。在这种状况下,选择相关的分支。bash

对于这个例子,咱们假设咱们正在修复 zend-validator 中的一个 bug, 因此咱们从 master 拉出新分支:ide

$ git checkout master
$ git pull upstream master && git push origin master
$ git checkout -b hotfix/readme-update
复制代码

首先,咱们要确保咱们在 master 分支上。而后 git pull 命令将咱们的本地副本与上游项目同步,而且 git push 命令将它同步到咱们所在分支的 GitHub 副本项目中。最后咱们建立咱们的新分支。你能够根据你的喜爱命名你的分支,可是它最好是有意义的。好比分支名中包含 issue 的编号通常颇有益处。若是该项目像 zend-validator 同样使用 git-flow,那么在特定的命名约定中分支名的前缀是“hotfix/”或者“feature/”。

如今你就能够开始作你的工做了。

确保你只修复你正在处理的事情。不要试图解决你修复问题过程当中看到的其余问题,包括格式问题,由于你的 PR 可能会被拒绝。

确保你在逻辑块中提交。每次提交的备注(commit message)应该清晰说明改动的内容。请阅读 Tim Pope 的关于 Git 提交消息的注意事项

第 3 步:建立 PR

要建立 PR,你须要将你的分支推送到 origin 远端,而后按下 GitHub 上的一些按钮。

推送一个新分支:

$ git push -u origin hotfix/readme-update
复制代码

这样作将会在你的 GitHub 项目上建立新分支。-u 标志符表示将本地分支与远端分支相连,以便未来只需输入 git push origin 就能够推送到远端分支。

返回浏览器并导航到你 fork 的项目(在个人示例中地址是:https://github.com/akrabat/zend-validator),你会发现你的新分支在顶部列出了一个简便的“Compare & pull request”按钮:

Pr button

继续而后按下按钮!

若是你看到这样的黄色框:

Contributing

点击连接能够将你带到项目的 CONTRIBUTING 文件而且你须要阅读它!它包含有关如何使用该项目代码库的宝贵信息,并将帮助你如何使你的贡献被接受。

在此页面上,确保“base fork”指向正确的仓库和分支。而后确保你为 pull request 提供了一个很好,简洁的标题,并在说明框中解释你为何建立了它。若是你有相关的 issue 编号,请添加进去。

Create pr

若是你向下滚动一点,你就会看到你的更改与原版本的差别。仔细检查它是不是你想要的结果。

要是你以为没什么问题了,按下“Create pull request”按钮便可完成。

第 4 步:由维护人员审查

为了将你的修改工做集成到项目中,维护人员将检查你的修改工做,并请求更改或合并它。

Lorna Mitchell 的文章代码审查:在你运行代码以前涵盖了维护人员将要查找的内容,因此阅读它并确保不给维护人员增添麻烦。

总结

以上就是所有流程了。基础步骤以下:

  1. Fork 原项目并克隆到本地。
  2. 建立一个 upstream 远端并在你建立分支以前同步更新到你的本地副本。
  3. 为每项单独的工做建立分支。
  4. 作好你的工做,编写良好的提交信息,并阅读CONTRIBUTING文件(若是有的话)。
  5. 推送到 origin 仓库。
  6. 在 GitHub 中建立一个新的 PR。
  7. 回应每一条代码审查的反馈信息。

若是你想为一个开源项目作贡献,最好的选择就是你正在使用的某个项目。项目的维护者会很感谢你的!

若是发现译文存在错误或其余须要改进的地方,欢迎到 掘金翻译计划 对译文进行修改并 PR,也可得到相应奖励积分。文章开头的 本文永久连接 即为本文在 GitHub 上的 MarkDown 连接。


掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 AndroidiOS前端后端区块链产品设计人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划官方微博知乎专栏

相关文章
相关标签/搜索