发布于 2026-01-06 0 阅读
0

为开源软件做贡献

为开源软件做贡献

大家好!DigitalOcean、DEV 和 Intel 再次联合举办 Hacktoberfest 活动,鼓励大家参与开源项目。去年是我第一次参与开源项目,所以我想分享一下我的经验。本文主要面向从未参与过开源项目的新手。我会一步步讲解如何克隆项目并提交审核,以及如何让整个过程更轻松、更易于上手。

首先,为了明确概念并确保我们理解一致,开源指的是一个项目对整个社区开放,供其使用和贡献。这是一个非常棒的概念,它允许开发者使用他人已经创建的软件,而不是重复造轮子,这有助于我们逐步推进技术发展。有很多地方可以查看开源项目,但本文将以 GitHub 为例进行说明。要使用 GitHub,你需要先在电脑上安装 Git 并注册一个 GitHub 账号,如果需要的话,请先完成这些设置,完成后再返回本文。

搜索

好了,现在继续文章的其余部分。如何参与开源项目呢?首先,你需要找到一个你想参与的项目。这并不总是像听起来那么容易,尤其是对于像我这样的新手开发者来说,我们可能没有足够的技能直接投入到大型项目中去修复 bug 或创建完整的功能。那么我们该怎么办呢?如果你已经对想要参与的项目类型有所了解,你可以在 GitHub 搜索栏中搜索。例如,今年我知道有一家公司我想为其做贡献,所以我可以直接搜索这家公司的名称。如果你不知道该怎么做,也不要放弃!你可以搜索主题,例如我推荐搜索“#beginner-friendly”。前面的“#”表示你在搜索一个主题,就像一个话题标签,这样你就能获得最可靠的结果。

搜索完成后,你会进入一个页面,对于不熟悉这种搜索方式的人来说,这个页面可能会让人感到困惑和不知所措,但其实并没有想象中那么糟糕。它会列出你可以查看的资源库,并提供额外的筛选条件来缩小搜索范围。一个比较好的入门方法是,查看资源库名称下方的内容,找到包含你所需主题的资源库,然后点击它进入专门介绍该主题的页面,这种方式搜索起来更加便捷。

GitHub 主题

进入主题页面后,您可以在页面顶部按首选语言筛选,并查看相关信息。此外,页面默认显示“问题”选项卡,这正是您查找项目所需的内容。现在,您可以向下滚动,找到看起来可行且有趣的问题或功能请求,点击即可进入问题页面,查看详细信息和备注。

GitHub 问题

请求工作

GitHub 上的 Fork 按钮

太棒了!现在你找到了完美的问题,准备开始动手了……接下来该做什么呢?首先,你需要创建一个整个仓库(或项目)的副本。这样,无论你搞砸了什么,都不会影响主项目,这只是你自己的版本,所以不用担心!操作非常简单,只需点击页面右上角的“Fork”按钮,选择你的个人资料作为复制目标,GitHub 就会自动完成剩下的工作。复制成功后,页面左上角会显示仓库名称,但这次会显示在你的名字后面,而不是原作者的名字后面。
分叉按钮

派生仓库

克隆

git clone <your-forked-repository>

现在你已经有了自己的副本,可以将GitHub上的仓库克隆本地计算机。你需要打开终端(请记住,你需要安装 Git),然后使用“git clone”命令。首先,获取你 fork 的仓库的 URL。最简单的方法是点击 GitHub 上的绿色“代码”按钮,然后点击复制图标。
复制图标

然后,在你的终端中,你输入git clone git@github.com:dhintz89/Signal-Desktop.git(将 URL 替换为你的项目 URL),瞧,现在你的计算机上就有了存储库。

新分行

git checkout -b <new-branch-name>

你可能以为现在可以开始写代码了,对吧?嗯,我们还没完全准备好,但离目标很近了,我保证。我们只需要为要开发的功能或修复创建一个新分支。在终端中,使用 `cd` 命令进入你的项目目录,然后输入 `cd` git checkout -b branch-name(将 `branch-name` 替换成你自己的分支名称)。记住,分支名称要具有描述性,因为这是原项目所有者之后提交时看到的。这样就会创建分支并检出,你就可以立即开始工作了。

完成工作

在这里进行修改。继续完善功能或修复错误,并像往常一样随时保存。

提交你的作品

本地承诺

git add .
git commit -m 'commit message'
Enter fullscreen mode Exit fullscreen mode

准备好提交你的工作后,你需要在控制台中输入以下命令,将更改提交到本地 Git 记录:

git add .
git commit -m 'commit message'
Enter fullscreen mode Exit fullscreen mode

请务必使提交信息具有很强的描述性,以便项目维护者能够准确地知道他们将获得什么!

推送到 GitHub

git push --set-upstream origin <your-branch-name>``

现在你的代码已经提交了,你可以git push --set-upstream origin branch-name在终端中输入命令,将本地提交的所有内容推送到你的 GitHub 仓库。

将原始仓库设置为新的远程仓库

git remote add upstream <original-repository>

要提交更改,您需要设置您的仓库,使其能够将更改推送到原始仓库。在终端中输入 ` git remote add upstream git@github.com:signalapp/Signal-Desktop.git`,然后输入原始仓库(您git remote add upstream拥有的仓库)的 URL。例如:`git remote add upstream git@github.com :signalapp/Signal-Desktop.git`。如果您输入 `git remote -v`,现在应该会看到输出四行,其中两行以 `origin` 开头,两行以 `upstream` 开头。

将您的存储库与原始项目同步

`
git fetch upstream
git checkout master
git merge upstream/master
`

当你埋头修改代码时,其他人可能也在对同一个项目进行类似的修改。如果你现在提交修改,可能会出现代码冲突的情况那就了。为了避免这种情况,你需要确保将代码与当前主项目同步,以便复制所有最新的更改。在准备将代码提交给原项目维护者之前,请务必执行此操作。

为此,请在终端中输入git fetch upstream,您应该会看到类似这样的输出(这将在输出的最后): 现在,切换到您的 Master 分支:并将您的Master 分支与原始Master 分支合并:现在,通过 git 的神奇力量,所有内容都将是最新的,并准备好(最终)提交。
`
From <original-repository-name>
[your-branch-name] master -> upstream/master
`

git checkout mastergit merge upstream/master

创建拉取请求

GitHub 新增 Pull Request 按钮

终于到了提交更改的时候了!前往 GitHub 上的仓库,点击“新建拉取请求”按钮: 然后选择要合并的分支,通常是左侧的 Master 分支(原始仓库)和右侧你新建的分支(你 fork 的仓库)。如果你正确完成了上一步并同步了两个仓库,GitHub 应该会显示“可以合并”。现在只需添加标题和任何你认为重要的注释,然后点击“创建拉取请求”按钮即可。
拉取请求按钮

庆祝!

好啦,大功告成!是时候好好休息一下了。
疲惫的狗

我知道这看起来工作量很大,但一段时间后,工作流程就会变得像呼吸一样自然。实际上,这一切都是为了确保你不会意外地破坏别人的工作成果,从而减轻你的压力。参与开源项目是我最喜欢的提升方式之一。你通常能从真正的工程师那里获得关于你代码的直接反馈和建议,而不是一些假设性的学习练习。此外,你还能因为参与构建了一些很棒的项目而感到自豪!所以,不妨去探索一下,尝试一些简单的贡献,即使只是添加一些注释或补充缺失的 README 文件,也常常会受到极大的欢迎。很快,你就会成为开源社区中不可或缺的一份子。

祝你好运,玩得开心!

想要更深入了解技术工作流程,请阅读Lisa Tagliaferri 的这篇精彩文章,文章内容更加详尽,几乎教会了我所有关于这方面的知识。

文章来源:https://dev.to/dhintz89/contributing-to-open-source-50dk