- 原文地址:The beginner's guide to contributing to a GitHub project
- 原文做者:Rob Allen
- 译文出自:掘金翻译计划
- 本文永久连接:github.com/xitu/gold-m…
- 译者:sophia
- 校对者:maoqyhz Isabella
这是一个针对于如何在 GitHub 上贡献开源代码的新手指南。该指南主要基于我看到 Zend Framework,Slim Framework 和 joind.in 它们如何操做。可是,这仅仅是一个通用的指南,所以请先检查项目的 README 文件以了解具体状况。html
首先你须要这个项目的本地克隆,因此先在 GitHub 中按下“fork”按钮。按下按钮后会自动在你的 GitHub 帐户中建立一个该项目仓库的副本,并且你会看到在已经被 fork 成功的项目名称下面有一行注释:前端
如今你须要一个本地副本,所以在右侧列中找到“SSH clone URL”,并使用它在本地终端进行克隆:android
$ git clone git@github.com:akrabat/zend-validator.git
复制代码
以下图所示:ios
转到新项目所在目录中去:git
$ cd zend-validator
复制代码
最后,在这个阶段,你须要设置一个指向原始项目的新远端地址,以便你能够抓取原始项目的任何更改并将它们更新至本地副本。首先定位到原始项目的连接 —— 它在 GitHub 页面的顶部,经过“fork from”标记。该连接会将你带回原始项目的 GitHub 主页,所以你能够在该页面找到“SSH clone URL”,并使用它去建立新的远端,咱们称之为 upstream。github
$ git remote add upstream git@github.com:zendframework/zend-validator.git
复制代码
你如今在磁盘上拥两个此项目的远端:后端
这是你为项目做出贡献时最有趣的一步。一般状况下,最好从修复一个使人讨厌的 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 提交消息的注意事项。
要建立 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”按钮:
继续而后按下按钮!
若是你看到这样的黄色框:
点击连接能够将你带到项目的 CONTRIBUTING 文件而且你须要阅读它!它包含有关如何使用该项目代码库的宝贵信息,并将帮助你如何使你的贡献被接受。
在此页面上,确保“base fork”指向正确的仓库和分支。而后确保你为 pull request 提供了一个很好,简洁的标题,并在说明框中解释你为何建立了它。若是你有相关的 issue 编号,请添加进去。
若是你向下滚动一点,你就会看到你的更改与原版本的差别。仔细检查它是不是你想要的结果。
要是你以为没什么问题了,按下“Create pull request”按钮便可完成。
为了将你的修改工做集成到项目中,维护人员将检查你的修改工做,并请求更改或合并它。
Lorna Mitchell 的文章代码审查:在你运行代码以前涵盖了维护人员将要查找的内容,因此阅读它并确保不给维护人员增添麻烦。
以上就是所有流程了。基础步骤以下:
若是你想为一个开源项目作贡献,最好的选择就是你正在使用的某个项目。项目的维护者会很感谢你的!
若是发现译文存在错误或其余须要改进的地方,欢迎到 掘金翻译计划 对译文进行修改并 PR,也可得到相应奖励积分。文章开头的 本文永久连接 即为本文在 GitHub 上的 MarkDown 连接。
掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 Android、iOS、前端、后端、区块链、产品、设计、人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划、官方微博、知乎专栏。