如果你是一名开发者,你可能会遇到“开源”这个词。如果你曾想知道它的全部内容以及如何为其做贡献,那么你来对地方了。

在 2020 年的 Hacktoberfest 期间,我抛开了所有我对如何以及贡献什么的恐惧,并为开源世界做出了我的第一个贡献。 由于对我来说是第一次,我从一些对初学者友好的项目开始,然后慢慢提高。

而现在,如果你是新手,你可能想知道开源到底是什么? 如何开始? 你应该期待什么? 在本文中,我们将涵盖所有这些内容甚至更多。

什么是开源?

开源是指在许可证的许可下向公众提供可以查看、使用、修改和分发的源代码。

无论是个人、公司、小型企业、非营利组织还是政府机构,开源代码通常符合企业或个人的最大利益。

为开源项目做出贡献是一种学习、教授、分享和积累经验的有益方式。 你应该为开源项目做出贡献的原因有很多,例如:

  • 改进你每天使用的软件
  • 如果需要,可以找一位导师
  • 学习新技能
  • 分享你的技能
  • 更深入地了解你正在使用的软件
  • 建立声誉并帮助你发展你的事业
  • 另外,它本身很有趣,会让你感觉很棒

你为开源项目做贡献的原因是什么? 回复这篇文章或通过 larymak 1 告诉我。

如何为开源做贡献

为开源项目做贡献并不一定意味着你必须为代码库做贡献。 你可以通过多种不同方式为开源做贡献,例如:

  • 你可以在项目文档中添加描述以详细说明某一点
  • 你可以针对特定的项目提供指南
  • 你可以添加示例来展示代码的工作原理
  • 你可以为项目编写教程
  • 你可以为项目添加翻译
  • 你可以回答有关项目的问题(比如在 Stack Overflow 或 Reddit 上)
  • 你可以对其他贡献者提供建议
  • 你可以修复错误并正确地安排项目的工作文件夹

所有包括但不限于这些方式都可以为开源项目做贡献。

为开源项目做贡献之前需要了解的内容

每个开源社区都是不同的。 每个社区都有不同的人,有着不同的角色和奖励。 他们每个人都有自己的职责和预期贡献。

一个典型的开源项目会有这些人:

  • 作者 - 创建项目的人。 他们有权为其他成员分配角色以帮助维护项目。
  • 所有者 - 所有者拥有项目的管理所有权(可以与作者为同一人
  • 维护者 - 这些人负责推动项目的愿景和目标。他们通常是对项目方向负责并致力于改进项目的人
  • 贡献者 - 贡献者以一种或多种方式加入到项目中。他们遵循相同的代码审查流程,遵守相同的代码风格要求等等。
  • 社区成员/用户 - 这些有价值的社区成员可以提供相关功能、错误报告等反馈。

所有开源项目都应该具备的重要元素

每个开源项目都应该有以下指南和信息:

  • License - 如果一个项目没有开源许可证,那它就不是开源的。许可证有助于保护开源贡献者和用户。没有这种保护,企业和精明的开发者通常不会接触该项目。如果你想知道如何获得开源许可证,请单击 此处 以了解更多信息。
  • README - 这是一本说明如何开始项目的手册。一个好的 README 应该包含潜在的贡献者想要了解的有关项目的所有不同内容。你可以阅读更多关于如何编写一个好的 README 文件 点击这里
  • How to Contribute - 这些指南帮助人们做出贡献并展示需要什么类型的贡献者(这个文件不是必须的
  • CODE_OF_CONDUCT - 这是一份文件,用于确定你对贡献者和参与者的行为方式的期望。采纳并遵守行为准则有助于为你的社区创造一个积极的环境。

要创建一个开源项目,你需要创建一个环境,可以让人们分享他们的挑战并进行深入讨论。这个可以通过以下工具实现:

  • Issue Tracker(问题追踪器) - 人们在这里讨论与项目相关的问题
  • Pull Requests(拉取请求) - 这是人们审查正在进行更改的地方
  • Synchronous Chat Channel(同步聊天频道) - 这是专门供人们分享他们的想法并进行对话的地方(如 Slack、Discord 等)

如何找到你想要贡献的开源项目?

既然知道了开源项目如何运作,那么是时候找到一个可贡献的开源项目了。

贡献在各个层面都有效——不要过分思考你将如何去做,而是想想你已经使用过的一些项目,如何对它们进行改进提高。

研究表明,大约 30% 的贡献是文档、错别字修复甚至是翻译。

如果你是第一次贡献(每个人在某个时候都是这样),这儿有一些网址可以让你开始拥抱开源世界:

在开源软件的世界中,问题会很快得到报告和修复。 所以,如果你想解决一个问题,一定要尽快解决它。

如何选择开源项目?

找到你想要贡献的项目后,让它符合以下标准,以确保它是一个不错的选择:

首先,你需要检查:

  • 它有许可文件吗?
  • 最新提交是什么时候完成的? 是最近的吗? (也就是说,项目是否在积极维护/工作?)
  • 它有多少贡献?
  • 人们多久提交一次?

如果你看到最近有很多活动,那很好,这意味着它有一个活跃的社区来维护它。

其次,你应该继续检查以下内容:

  • 有多少未解决的问题?
  • 维护者需要多长时间才能做出回应? 回应及时吗?
  • 是否对某个问题进行了积极的讨论?
  • 问题是否会定期关闭?
  • 有多少开放的拉取请求?
  • 最新的拉取请求最近多久合并? 是最近吗?
  • 是否首先审查拉取请求? (他们应该是)
  • 维护者是否感谢人们的贡献?

如果上述所有条件都满足你的需求,那就去做吧,开始为这些项目做贡献。

在进行开源项目之前需要考虑什么?

所以你迫不及待地要开始致力于自己的第一个开源项目了。让我们来了解一些可能会帮助你选择项目的方法。

项目使用什么编程语言?

任何应用程序背后最基本的技术都是它使用的编程语言。GitHub 上一些最流行的语言包括但不限于JavaScript、Python、Java、Ruby 和 PHP。

你的能力和兴趣也许会契合众多项目,所以选择一个你感觉舒服的项目即可。

项目类型

在你确定了你想要使用的语言后,你需要选择你喜欢的项目类型。只需概览一圈并选择一个你感兴趣的主题的项目即可。

项目一旦确定,你一定想要有一番作为。你将通过提交拉取请求来做到这一点。现在让我们来详细说说这个。

如何提交拉取请求(Pull Request)?

如果你处于这个阶段,已经找到了一个项目,你就可以继续了。让我们来谈谈如何实际提交拉取请求。

首先,什么是拉取请求? 这是你在 GitHub 中请求更新的方式,也是你将代码合并到另一个分支之前让某人检查你的代码的方式。

提交 PR 的步骤

  • Fork 存储库
    在右上角,你将看到“fork”一词。 单击它,将在你的帐户中创建同一个项目的副本。 URL 将更改为:
https://github.com/<YourUserName>/projectname
  • 将其 Clone 到你的本地
    在你的电脑上,如果安装了 Git,请打开 CMD 并运行此命令。 如果你还没有 Git,请参阅 此处,它将向你展示如何开始使用 Git。 然后继续执行以下步骤:
git clone https://github.com/<YourUserName>/<projectname>

这会在你的本地电脑上创建项目的副本。现在你已经克隆了存储库,我们需要做两件事:

首先,你需要创建一个分支。切换到你电脑上的存储库目录(如果你还没切换的话):你可以通过以下方式执行此操作:

cd project folder name

使用 git checkout 命令创建一个分支:

git checkout -b your-new-branch-name

比如:

git checkout -b lary-mak-blog

接下来,你需要进行必要的更改并提交这些更改。 在进行更改和添加新文件之后,将这些更改添加到你创建的分支中了。

要查看你做的所有更改,请运行 git status 命令:

git status

这会显示你最近做的所有更改。现在添加它们,使用 git add * 命令:

git add *

现在使用 git commit 命令提交这些更改:

git commit -m "<initial commit> "
  • 将更改推送到 GitHub
    你可以使用 `git push 命令轻松完成此操作:
git push origin <add-your-branch-name>

用你之前创建的分支的名称替换 <add-your-branch-name>

  • 提交你的更改以供审核
    如果你转到 GitHub 上的存储库并刷新页面,你将看到“Compare and pull request”按钮。 单击该按钮。

很快,维护者会将你的所有更改合并到该项目的主分支中(除非他们需要你的更改)。 合并更改后,你将收到一封通知电子邮件。

对其他存储库的拉取请求类似于“Push”。 但是,它允许做一些事情:

首先,它允许你为其他存储库做贡献,而无需管理权限来对存储库进行更改。

其次,它允许其他人查看你的更改并提出更正、添加、编辑等建议。

第三,它让管理员可以控制添加到他们项目存储库中的内容。

在完成第一个拉取请求后,下一步做什么?

恭喜你! 刚刚完成了作为开源贡献者经常遇到的标准工作流程!fork -> clone -> edit -> pull request

现在,你可以继续寻找其他项目并做出更多的贡献。 并且一定要留意Digital Ocean举办的开源月,这样你就可以参加Hacktoberfest并有机会赢取一些很有意思的东西。

为开源做贡献的好处

既然你已经了解了如何为开源做出贡献,那么做贡献有好处有什么呢?

  • 为开源项目做贡献的人比仅仅使用该技术的人更深入地了解该技术
  • 你可以根据在现实世界中有效和无效的经验,专注于添加和利用对企业有益的功能
  • 它可以建立你的士气和声誉。 为开源项目做贡献的人得到其他社区成员的见解和经验
  • 对开源的贡献可以清晰地了解一个项目的未来
  • 如果你使用 GitHub ,你在该平台上做的很大一部分事情都是公开的。利用这一点来发挥你的优势,在贡献和与其他贡献者交流时,始终做到最好。因为你永远不知道谁在看着你,你的下一个雇主可能就在那里😊

为什么你应该为开源做贡献?

作为一名开发者,以下我认为你应该为开源做出贡献的原因:

  • 它可以帮助你编写更清晰的代码
  • 它可以帮助社区和同行了解你。这种认可可以为你的职业生涯带来很多机会
  • 它可以帮助你了解有关项目的更多信息
  • 它提高了你的编码技能

更多有关信息,请阅读 freeCodeCamp 的指南

感谢你读到这里!

与我联系 Twitter | Insta | YouTube | LinkedIn | GitHub

请分享你的宝贵意见,感谢你的诚实反馈!

享受编程吧❤

原文:How to Contribute to Open Source Projects – A Beginner's Guide,作者:Hillary Nyakundi