您的位置:首页 > 编程语言

在Github上的开源项目:你的第一次贡献(原文:Open Source on Github: Your First Contribution)

2013-08-28 14:58 435 查看
原文地址:http://spencermoran.me/2013/08/13/open-source-on-github-your-first-contribution/

注:本文只是我个人为练习翻译自作,水平极其有限,看不下去的直接关了就行,勿喷

作为一个计算机专业的高年级学生,我常听到这样的话:为github上的开源项目做贡献是多么的伟大。许多工作把在github上的工作作为一个条件或者要求,同时这些开源项目经常在各种会议和学校活动中作为被讨论的话题。听起来不错,我应该去干这件事!唯一的一个问题是:我是一个什么都不会的菜鸟。的确,我能够在学校计算机课上非常好的完成作业,并且我也确实能够完成一些在家人和朋友开来非常酷的项目,但我确实无法对项目的真正用户提供任何有意义的帮助。对吧,的确。
 
错了!!即使是个菜鸟也有许多种不同的方式来为github上的开源项目做贡献。你不必能够阅读并理解所有10万行的代码或者知道怎样修复在boot中实现动态堆栈引导这样的问题以便能够作出对实际用户有意义的工作。这里每个人都有办法来做贡献。
 
我最近刚刚对一个开源项目作出了第一次真正的贡献,一个非常小的贡献,当我知道外面的一些人正在使用我写的这很小的部分时,我对我的成就感到很兴奋。你不得不从小事开始并逐步提升自己的工作。这就是我对于任何一个希望为github的开源项目做贡献但又觉得不堪重负的人的建议。
 
第一个阶段是找到一个资源库去里面寻找pull request 。你能够通过几种方式找到上面说到的这些。最简单的方法就是通过阅读“readme”文件。这些文件通常能够明确的陈述资源库的拥有者渴望接受的pullrequest。如果readme没有说明关于PullRequest的任何信息,你可以查看资源库中的Pull
Request和问题。通过检查Pull Request的日志并且查看那些已经关闭的Pull Request,你能够根据那些资源库的拥有者的更新去判断项目的容易程度。如果你能够找到一个你真正感兴趣的和符合上述条件的项目会有加分。对我来说,我发现一个名叫“rails  template”的项目在创建新项目的readme文件中第一行写到:Pull request 欢迎你。不错!
 
现在是时候叉并且克隆回购。如果你不知道这些,这里有一个不错的向导。
 
按照readme中的介绍并且确保你能够在自己的电脑上调试并且运行项目。如果你能够遇到任何一个在readme中没有说到的问题或者任何的错误,你就找到了第一个非常好的贡献。为项目做贡献最好的一种方式就是让项目能够更简单的工作。你可以在文档中简化readme,修改已有的错误,或者两者兼而有之。直接进入别人的代码库并立即开始修改别人的代码是一件非常危险的事情。这里有一些无危险的方式来开启你的开源职业生涯。我想我工作的那个资源库有非常好的文档资料并且项目足够的简单以至于在这个地方不需要提供任何的帮助。
 
如果你仍然没有找到为项目做贡献的方式,那就去阅读项目中的所有问题。这里有一些关于修改的和增加的话题,有时是提出一些伪代码,有时甚至仅仅是一些人没有时间去修改完成的代码。你没准能够发现有些已经完成的和没有需求的有趣的代码改变变了程序的执行。
 
如果你不认为你能够帮助解决出现的任何错误,repo owner在readme文件中有一个待办事项的章节可以查看,或者你也许有自己的想法。对于我来说,我一直去浏览资源库(有时甚至是我自己的资源库)。DS_Store正在github上增加这些内容。当DS_Store加入一个项目时他在OSX的Finder中浏览,并且这里也没有理由将其放到github中。我可以把它添加到rails
 template 这个项目中的gitgnore中,但需要确保没有人把这个模板不小心加入到项目的推送中。我已经作出了贡献!现在我只需去执行他,执行就是一个非常简单的事情了。你需要确保了解这个项目中的所有惯例(约定)。查看pull request及readme文档对了解拥有者的规范十分的重要,同时一定要按照作者希望的格式提交信息。我根据上面的指导提交了一份资源,在这里增加了一部分代码。
# DS_Store gets addedto project if viewed in OSX Finder
run "echo '.DS_Store' >>.gitignore"
 
一个小时以后我提交的资源被合并进了一个真正的项目中,这是一个在github上有上百个人参与的项目。我再一次感觉到了我工作的目的。人们正在使用我写的一小部分内容。
 
作为一个计算机系的研究生我缺少的经验-就是一种看得见的成就,也就是我想知道我正在做些什么。我学过算法、数据机构,一些计算机语言,并且能够长时间的写代码。我知道我写的代码足够的好。但我所没有的感觉就是我的成果对其他人的影响。我经常会思考这样一个问题:“为什么要这这个事情?谁在受这个事情的影响?”在一天快要结束后,我想知道我的工作确实对有些人来说是有用的。
 
虽然为开源做贡献很容易被吓住,并且这确实有一个比较陡的学习曲线,但为github上的开源项目做贡献是一个取得成功非常好的方式。
 
注1:pull request github 上的一项功能用来展示以便让别的开发者知道这个项目。
注2:repository 翻译成了“资料库”
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  翻译