所以你在GitHub上发现了一个项目,想要为该项目做出贡献。但是怎么做呢?你不认为自己是一个开发人员,而且源代码控制术语对你来说很陌生。别担心。答案是一个 Git 拉取请求(PR)。
在本教程中,你将学会如何通过 Git 拉取请求来为一个 GitHub 项目做出贡献,将你的代码加入到一个GitHub 仓库中。
为 GitHub 项目做贡献
到目前为止,你可能已经看到至少一个 GitHub 项目,觉得自己可以帮助修复一些错误、更新一些文档或者添加一个新功能。你想要参与进去,但是和许多其他 IT 专业人士一样,你不认为自己是一个软件开发人员。
Git 和 GitHub 传统上一直处于开发领域。但随着越来越多的基础设施转移到云端,以及基础设施即代码工具的出现,系统管理员开始在 GitHub 上进行更多的探索。
许多 IT 专业人员不知道从哪里开始。因此,在本文中,你将从零开始学习如何通过拉取请求向现有的 GitHub 项目贡献代码。
什么是拉取请求?
当你有一个能够为现有项目或 GitHub 仓库增加功能或价值的代码/修复时,你可以创建一个拉取请求。
尽管拉取请求是一个单一的操作,但最终结果(将您的代码合并到其他人的GitHub存储库中)涉及到五个大致的阶段,您将在本教程中学到。
1. 分叉或将原始存储库“复制”到您的GitHub帐户中
术语“分叉”有时会与术语“克隆”混淆。Git和GitHub是两个独立的产品。“分叉”是GitHub的术语,它在GitHub上创建了GitHub存储库的副本。“克隆”是Git的术语,它指的是通过下载远程Git存储库在您的计算机上创建本地Git存储库。
2. 提交代码到我们的个人分叉存储库,并将该代码推送到GitHub存储库
3. 向存储库所有者提交拉取请求
4. 存储库所有者审查并批准您在拉取请求中的更改
5. 存储库所有者将您的更改合并到主分支中
先决条件
要按照本教程中的演示进行操作,请确保您具有以下内容:
- A GitHub account
- A GitHub repo to request changes to – This tutorial will use a repo called git-pull-requests.
- Git – 本教程将在Windows上的工作目录C:\Git中使用Git。
- 设置Git以与您的GitHub帐户一起工作
分叉GitHub Repo
由于您无法直接更改其他人的GitHub存储库,因此您必须首先创建自己的存储库。 要做到这一点,您需要分叉或创建存储库的副本并将其放在您自己的GitHub帐户下。 要做到这一点:
1. 打开您喜欢的Web浏览器,导航到GitHub并登录。
2. 导航到教程存储库或您想要贡献的存储库,如下所示。

3. 在右上角,单击“Fork”按钮。 此按钮将自动在您的帐户中创建该存储库的副本。

分叉后,您现在应该在您的存储库列表中看到相同的存储库。 您还可以看到此存储库是从Adam-the-Automator\git-pull-requests分叉出来的。

将新代码提交到您的个人分支
现在,您在GitHub帐户中有了自己的存储库的副本,是时候进行更改了。 您可以通过以下两种方式之一对GitHub存储库中的代码进行更改:直接通过github.com或通过Git本地。 让我们涵盖这两种方式。
通过github.com提交代码
最简单的方法修改 GitHub 存储库中的代码是直接使用 web 浏览器。通过使用 github.com,您无需担心在本地设置任何软件。但是,如果您需要进行任何稍微复杂的更改,使用 web 浏览器很快就会变成一种头痛的经历。
假设您仍然在浏览器中查看 fork 的存储库:
1. 点击您 fork 的存储库中的 SampleText.ps1 脚本,然后点击铅笔图标进行编辑。

2. 对文件进行更改,然后点击下面显示的 Commit changes 按钮,可选择添加提交消息。

通过 Git 提交代码
如果您计划在 GitHub 存储库中对文件进行多次简单更改,您应该使用 Git。Git 允许您将整个存储库克隆到本地计算机,并在您喜爱的代码编辑器中对代码进行编辑。
克隆
要在本地操作 fork 的存储库代码,您首先需要使用 Git 将整个存储库克隆到本地计算机上。操作步骤如下:
假设您仍然在 github.com 上的 fork 存储库页面:
1. 点击 Code 按钮,并复制 HTTPS 部分下的 URL。

2. 接下来,在您的计算机上打开命令行控制台。本教程将使用 Windows PowerShell。
3. 创建一个目录来存储克隆的存储库,并运行 git clone
,指向从上一步复制的URL。

提交和推送本地文件
一旦您克隆了 Git 存储库,就是修改文件并将这些更改提交到存储库的时候了。要做到这一点:
1. 打开您喜爱的代码编辑器,编辑并保存 C:\SampleText.ps1 脚本。
2. 在终端窗口中,确保您的工作目录是 C:\Git,然后运行以下命令。 git add
命令 将文件添加到本地 Git 存储库,但不保存它。它只是开始跟踪它。
3. 接下来,使用 git commit
命令 提交或保存 Git 存储库中的所有被跟踪文件。务必还要使用 -m
参数包含有关发生了什么变化的说明(提交消息)。

4. 现在,本地 Git 存储库包含了已更改的文件,推送 这个变化到 GitHub 存储库中,使用 g
it push
命令。您应该会收到一个框,要求您提供 GitHub 用户名和密码以验证到您的派生 GitHub 存储库。
5. 一旦您提供了 GitHub 用户名和密码,您应该会看到 Git 提供一些状态信息,如下所示。

提交拉取请求
到目前为止,您已经在您自己的GitHub帐户中复制了要贡献的GitHub存储库(已分叉),并做出了您想要向所有者GitHub存储库请求的更改。现在是时候提交拉取请求,请求所有者接受您的更改。
1. 在GitHub上导航至您分叉的存储库。
2. 单击拉取请求和下面显示的新拉取请求。

3. 在拉取请求页面上,您将看到将进行比较的两个存储库以及您要求合并到所有者GitHub存储库中的每个提交。单击创建拉取请求。

4. 为拉取请求提供标题,然后单击创建拉取请求。

然后您将在原始GitHub存储库中看到一个拉取请求。此时,您的工作已完成,现在是等待所有者的时间。
审查和接受拉取请求
一旦您创建了拉取请求,它将显示在原始GitHub存储库的拉取请求下,如下所示。

此时,所有者现在要么会向您提供评论,您可以在拉取请求上进行协作。要么,他们可以立即通过单击合并拉取请求来合并它。
一旦他们将拉取请求与原始代码合并,拉取请求将进入已合并状态,代码将与原始存储库合并!

现在,您可以看到您是更改的文件的贡献者,并且已被合并。

结束
在这个教程中,你学会了如何创建 Git 拉取请求的每一个步骤。拉取请求是在 GitHub 仓库上进行协作的好方法。
现在你知道如何为 GitHub 项目做贡献了,你下一个想要贡献的仓库是什么?