最近一年开源项目特别的热,不少技术大会或论坛都以开源项目做为主题进行探讨,可见这是一种趋势。而Github做为开源项目的著名托管地,可谓无 人不知,愈来愈多的我的和公司纷纷加入到Github的你们族里来,为开源尽一份绵薄之力。对于我的来说,你把本身的项目托管到Github上并不表示你 参与了Github开源项目,只能说你开源了本身的项目,能够任别人自由下载。那么该如何参与Github的开源项目呢?相信不少人都有这方面的疑问,网 上也有一些良莠不齐的教程教你们如何“pull request”、如何“commit”等等。但这些教程每每不够全面或不够彻底正确,搞很差可能让你陷 入一个误区。鉴于此,前几天Github官方团队写了一篇很棒的文章Contributing to Open Source on GitHub,专业指导你们如何参与Github的开源项目。做为Github的入门级粉丝,将这篇教程翻译出来,供那些对开源项目刚兴趣的人参考借鉴。前端
下面是正文。个人Github地址:https://github.com/lanxuezaipiao,有本身的项目也有fork的很是优秀的编程资料、编程笔记和计算机优秀论文资料,有兴趣的能够follow下。
git
参与开源项目的最佳办法就是加入到你正在使用的已有项目上来。Github上有500多万开源项目,涉及到各个领域的技术,像recipes,HTML/CSS,Ruby, Astrophysics等等。该指南将涵盖你在一个典型的项目中可能出现的事情以及如何为开源项目做出贡献。github
咱们推荐你从已正在使用的或感兴趣的项目开始。这里有几个很棒的地方供你参考:编程
下面是一些你在Github开源项目中可能遇到的因素。浏览器
项目一般会有一个社区维护,由不一样角色(正规或非正规)的其余用户组成:ide
通常项目中都有的文件。测试
几乎全部的Github项目都包含一个
文件。readme提供了该项目的一个概览及关于如何使用、构建甚至如何贡献于一个项目的相关细节。uiREADME.md
项目和项目维护者不一样,因此每一个项目所指望的做贡献的最佳方法也会有所不一样。必定要注意一个标注为
的文档,Contributing文档详细描述了一个项目的维护者但愿看到贡献的补丁或功能应该符合怎样的规格。这可能包含要写什么测试,代码语法规范或补丁集中的区域。操作系统CONTRIBUTING
一个
文件固然就是该项目的许可证了。一个开源项目的license会告诉用户他们能作和不能作的(例如使用、修改、从新发布),及告诉贡献者他们容许其余人作的。有许多的办法对开源项目加上许可证,你能够在choosealicense.com读到更多的关于每一个许可证的含义。.netLICENSE
许多大型项目有的不仅有一个readme来指导人么如何使用他们的项目。在这种状况下你一般可以发现一个指向库中名为“docs”的另外一个文件或文件夹的连接。
另外,该库也可能使用Github wiki来代替文档。
既然你已经找到了理解该项目的相关资料,下面你就能够采起一些行动了。
若是你发现了你正在使用的项目中的一个bug(可是你不知道怎么去修复它),或对文档有不解或对项目有疑问 — 那么建立一个话题吧!这很是容易且通常你无论建立什么话题,你均可能不是惟一一个出现该问题的人,因此其余人可能会发现你的话题颇有帮助。关于更多的 话题介绍,请查看咱们的Issues guide。
```
包围起来使得可以良好的呈现给你们。
若是你可以修复bug或本身添加功能 — 太棒了,请发一个pull request 吧!确保你已经读过任何关于contributing的文档,且须要理解license以及已经签过CLA(若是须要的话)。一旦你提交了一个 pull request,维护者就会将你的分支与已有的分支做比较来决定是否要合并(即pull in)你做的改动。
一旦你打开一个pull request,就会有一个讨论,围绕你提出的改变做出探讨。其余的贡献者和用户可能会参与进来,但最终由维护者作决定。你可能 会被要求对你的pull request作一些改变,若是这样,请给你的分支添加更多的commit并push它们 — 它们将自动的加入到已有的pull request里。
若是你的pull request被合并了 — 太好了!若是没被合并的话,也没什么大不了的,也许这不是项目维护者所指望看到的改动,亦或者他们已经致力于该bug或功能。这种状况有可能发生,所 以咱们的建议是:对收到的结果作出反馈,进一步努力而后再次pull request出去— 或者建立你本身的开源项目。
若是你跟我同样是开源的支持者,请点击下面的推荐按钮 (*^__^*)