"You have to start small and work your way up." And this is mine.
此文是
http://spencermoran.me/2013/08/13/open-source-on-github-your-first-contribution/
的翻译。
完全根据自己的理解翻译,有些地方我觉得难翻译的就按照自己的来了,而且简化了,并给出了原文。
repository ,这个词我按照意思翻译成了“项目”或“库”,不知道合不合适。
pull request这个词组我就不知道怎么翻译了,希望有人指导。
contribution ,这个词我翻译成了“贡献”、“捐献”,contribute翻译为“捐献”,感觉也不太合适,还希望有人指正。
-----------------------------------------分割线-------------------------------------------------------------
作为一个计算机科学的高年级学生,我经常听到关于“在GitHub上向开源工程提交代码很牛逼”的说法。很多工作机会的要求中将其作为加分项,而人们经常在各种研讨会上谈论它,甚至在学校也是如此。听起来很不错,我应该也参与其中。但是问题是:我是一个超级小白。我在学校的课程上做得还不错,而且我也做了一些我的家人和朋友觉得很酷的“工程”。但是,我现在肯定不能为一个真正有用户的工程做一些有意义的贡献,是这样吗?是吗?
完全错误!就算作为新人,我们仍然有很多种方法向GitHub上的开源工程提交有实质作用的贡献。我不需要能够读完几十万行的rails代码或者知道怎么解决那些能够影响真实用户的问题(how to fix that issue with the dynamically stacking grid in bootstrap to be able to do something meaningful that affects real users. )。每个人有不同的贡献方式。
最近,我向一个开源项目提交了我的第一份“贡献”,虽然它很小,但当我想到有人在用我参与了的项目,我感受到了很大的成就感。我们必须做一个小的开始,然后坚持它。下面就是我对所有想要参与GitHub上的开源项目的人的建议,开始尝试吧( but has just felt overwhelmed trying):
第一步:在GitHub上找一个正在寻求“pull request”的项目(The first step is to find a repository that is looking for pull requests)。你可以通过很多方法找到这种项目。最简单的方法就是通读readme文件。readme会告诉项目的拥有者正在急切的寻求“pull request”。如果readme文件中没有提到pull request,你可以看看问题列表(issues)和项目的pull request。仔细观察所有pull request 的时间,翻翻已经被关闭的pull request,你将可以判断项目拥有者是否在积极的更新项目。如果你能找到一个你感兴趣并且满足上面提到的条件,恭喜你。在我寻找的时候,我找到了一个项目,它是用于创建新项目rails template,它的readme文件第一行是一行加粗字体:Pull request are welcome。完美!
现在要做的是fork和复制这个项目。如果你不知道怎么做,这是一个指南。
你需要遵循readme中的所有指示,以确保你能够在本地环境中配置并运行这个项目。如果你遇到了一个在readme中没有提及的问题或者错误,提交它,这就是你的第一份贡献。你可以编辑readme,清楚的说明这个问题,方便后来的捐献者。向某个项目捐献的最好的方式之一就是让项目上的工作变得更容易。你可以整理readme,编辑文档中的错误或清理它们。直接跑到别人的代码库中并立即开始做变更是很恐怖的事情。有不恐怖的,更好的方式开始你的开源生涯。我想要参与的项目的文档很完善,并且它非常简单,因此不适合在此作为例子。
如果你还是没有找到捐献的方式,你可以通读问题列表。那里可能有一些增强或修改项目的建议,有些人可能已经对此提交了一些伪代码或者给出了代码的开始部分,但是他们只是没有时间来完全解决它。你可能会发现一些已经可行的东西,并且并不需要作出太多的代码改动。
如果你觉得你不能解决列表中的任何问题,去看看readme中拥有者是否有一个将要做的任务列表,或者你有自己的想法,开始做吧。我遇到的情况是,我讨厌浏览整个库(有时我自己的项目也是如此)并且看到加到项目的github上的.DS_Store。每次在OSX的Finder上查看项目的时候,.DS_Store就会被加到库中,而我又没有任何理由将它提交到github。我将它加到项目的.gitignore中,这个配置文件可以避免用到项目(rails template)的人不小心将它提交到github上。我提交“捐献”了!现在我要做的就是实现它,这非常简单。确保你遵循了项目的所有约定。查看readme文件和其它pull request中项目拥有者首选的格式,确保你使用了她或他想要的提交信息。我遵守了所有上面的约定,并提交了pull request,加上了如下信息:
# DS_Store gets added to project if viewed in OSX Finder run "echo '.DS_Store' >> .gitignore"
一个小时后,我的pull request就被合并到主库中。这可是一个有上千人关注github项目。我改变开始工作的目的,因为人们正在用我写了(很小)部分代码的项目了!
作为一个CS的本科生,我的经历中缺少了现实的成就感,那就是,我想知道我所做的有何影响。我学了算法、数据结构、很多种编程语言,不停的在编码。我知道我做的东西很不错,但是我没有感觉到我所做的影响到了谁。我经常在想“为什么这么做?”“这有对谁有意义?”在一天结束的时候,我想知道我做的事情对何人有意义。
虽然向github上的开源项目捐献代码可能会很难(it may be intimidating),它的学习曲线也很陡峭,但是这么做可以获得精神上的满足感。
相关推荐
7. **分析工具**: 除了GitHub自带的功能,还有许多第三方工具和脚本,如GitStats、Gource、WakaTime等,可以生成更丰富的贡献者统计报告,包括代码修改趋势、活跃时间段、代码审查效率等。 8. **贡献者统计的意义**...
10. **开源文化**: GitHub鼓励开源,这意味着Nkap23的网站源代码可能对公众可见,其他人可以学习、贡献或 fork 该项目。 综上所述,Nkap23正在利用HTML等前端技术在GitHub上构建个人网站,这个过程涵盖了网页设计、...
在当今的开源世界中,GitHub 已经成为开发者分享、协作和托管代码的主要平台。为了更好地展示个人或项目的贡献情况,GitHub 提供了一些内置的统计功能。然而,对于那些想要更个性化、更详细统计数据的用户,可以借助...
用户可以在GitHub上创建仓库,将博客源码推送到仓库,实现代码的备份和分享。 4. **GitHub Pages**:GitHub Pages是GitHub提供的免费静态网站托管服务。用户可以选择从个人用户名或组织名的仓库发布Pages,这里博主...
对这些数据进行预处理,如清洗、整理和归一化,是进行有效分析的第一步。 接下来,我们可以运用大数据处理工具,如Apache Hadoop、Spark或Flink,来处理大规模的GitHub事件数据。这些工具能够高效地处理大量分布式...
这表明该程序至少在2012年时已经更新到了第三个主要版本,意味着它可能经过了一段时间的发展和完善。 在深入探讨这个开源程序之前,我们需要下载并解压文件,了解其内部结构和组件。可能包含的文件有:安装脚本、...
【标题】"PierreRogier.github.io:La Chouette Agence P4开放式教室" 指的可能是一个开源项目或课程,该课程聚焦于使用JavaScript技术进行Web开发,特别是针对"La Chouette Agence"这个虚构或实际存在的机构的第四...
【标题解析】:“IT--1-14:我在GitHub上的第一个存储库”表明这是一个关于IT技术,特别是与GitHub相关的主题。"1-14"可能是课程编号或学习阶段的标记,意味着这是关于GitHub的初步学习内容。标题指出这是创建者在...
Mgmt."是一个用于组织和管理酿造比赛的在线系统,而“GitHub上的最新版本-开源”表明这个系统是基于开源软件的原则进行开发,并且其源代码托管在GitHub上,允许社区成员查看、下载、贡献和改进代码。 在描述中提到...
**标题解析:**"demo4logback:我在github上的第一个项目" 这个标题表明这是一个开源项目,托管在GitHub上,项目的名称为“demo4logback”。它可能是一个学习或实践项目,用于展示作者对特定技术,特别是日志管理方面...
使GOODERP有清晰的市场定位和竞争对手5、实行开源项目贡献者奖励制度,让开源成为众包6、参照现有ERP软件构建业务伙伴支持网络和实施工具包7、通过大量读写代码培养和发现具备openobject平台二次开发能力的程序员...
这个系统可能采用了GitHub Pages服务来发布和更新内容,这表明该项目是开源的,并且鼓励社区参与和贡献。通过这个网站,用户或许可以查看历史数据,比较不同年份的冰层覆盖范围,或者获取特定时间段内的冰情报告。...
本文档中提及的GreenplumDB 5.0版本是自2015年开源以来的第一个稳定版本,预示着它在安全、性能和功能上的成熟。GreenplumDB 5.0的发布计划在2017年初,它基于PostgreSQL,集成了丰富的数据处理和分析功能,如JSON/...
它被标记为 "第一个github上的仓库",这表明这是作者在GitHub上托管的第一个代码存储库,可能是一个学习项目或是个人作品的起点。 【描述解析】 描述部分与标题相同,再次强调了 "usermanager" 是作者在GitHub上的...
- **GitHub 仓库**:开源代码库提供了一个了解和研究 Typo3 内部工作原理的窗口,同时也可以参与项目贡献。 **4. 使用 t3v6 版本** t3v6 是 Typo3 的一个较旧版本,可能已经不再接受官方维护,但它依然具有学习...
在IT行业中,GitHub是一个至关重要的平台,它是全球最大的开源软件托管平台,汇聚了众多开发者分享、协作和贡献代码。"hello-world"项目是许多新手程序员入门的起点,它象征着初次接触编程或开源社区的简单示例。在...
【标题】"MyFirstRepository:这是我第一次使用Github" 暗示了这是一个关于Git和GitHub的基础教程或项目记录。Git是一种分布式版本控制系统,用于跟踪对软件项目中的文件所做的更改,而GitHub是一个基于云的平台,...
标题中的“Ola-Mundo”通常在编程世界中表示为“Hello World”,是初学者入门编程时编写的第一段代码,用于展示程序的基本运行机制。在GitHub上,"Primeiro存储库"表明这是一个用户创建的第一个仓库,可能是为了学习...
2. **浏览器扩展/插件**: 浏览器扩展是添加到Chrome或Firefox等浏览器中的一小段代码,可以增强浏览器功能或提供特定服务,例如“whats-new-github”就提供了查看GitHub活动的功能。 3. **Chrome和Firefox**: ...
在演讲中,王鹤还分享了关于如何运营你的开源项目,以及对ichartjs未来展望的看法。运营一个成功的开源项目不仅仅是发布代码,还需要社区建设、用户反馈、持续更新和维护。开源项目的成功依赖于社区的支持和贡献,...