当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 让我的 GitHub Forks 保持最新

作者:精品下载站 日期:2024-12-14 07:15:09 浏览:16 分类:玩电脑

让我的 GitHub Forks 保持最新


在上一篇文章中,我写了有关我 将命令 Update-AzureRM 更新为仅更新的信息有较新版本可用的模块,并且不会下载和覆盖已经是最新的模块。当然,除非我使用 -Force 参数。

当我完成更改并感到满意后,我想也许其他人可能会从此更新中受益,并且由于 AzureRM 模块作为 GitHub 上的开源项目提供,我请求将我的更改包含在该模块的正式版本中。我就是这样做的。

要执行以下步骤,您需要在 GitHub 上拥有帐户并安装 git 客户端。实现此目的的最快方法是注册一个新帐户并从以下位置安装“GitHub for Desktop”:https://desktop.github.com/ 它还需要一些 git 的基本知识,有关介绍,您可以查看我在 2015 年 PowerShell 欧盟峰会上的会议,该会议可在 YouTube。

现在让我们开始吧!

Fork - 创建我自己的存储库副本

当我想要向 GitHub 上的存储库做出贡献但我没有写入权限时,我要做的第一件事就是在我的 GitHub 帐户上创建存储库的副本。这样的副本称为分叉。就我而言,我浏览到 GitHub 上的 Azure-PowerShell 项目 (https://github.com/Azure/azure-powershell),然后单击屏幕右上角的 Fork 按钮:

[玩转系统] 让我的 GitHub Forks 保持最新

单击“分叉”按钮将在我的帐户上创建存储库的副本,并将我带到此副本。

克隆 - 下载副本

一旦我拥有了可以进行更改的项目副本,我需要将项目下载到我的本地计算机。下载存储库副本的过程称为克隆。要克隆存储库,我首先需要找到要从中克隆的 URL。可以在页面上部的文本框中找到它以及剪贴板按钮。单击该按钮一次可标记文本,再单击一次可复制到剪贴板。

[玩转系统] 让我的 GitHub Forks 保持最新

当我的剪贴板中有 URL 时,我打开 Git Shell 并导航到我想要下载模块的文件夹。然后我通过键入以下内容来克隆存储库:

git clone https://github.com/SimonWahlin/azure-powershell.git

添加上游 - 从原始存储库获取更新

现在,当我拥有分支的本地副本时,我想确保我的副本与原始存储库保持同步。如果我打算在更长的时间内从事某件事,这一点尤为重要,但我会努力养成良好的习惯。为了确保我可以从原始存储库获取更新,我需要将本地克隆链接到原始存储库。为此,我将称为远程的东西添加到我的本地存储库中。我可以通过运行以下命令查看当前配置的所有遥控器:

git remote -v

运行此命令显示我有一个名为 origin 的远程设备,该远程设备已设置用于获取和拉取。 Origin 是我克隆的存储库(在本例中是我在 GitHub 上的分支)使用的默认名称。现在我想添加另一个遥控器,我将调用该遥控器上游。为此,我必须获取原始存储库的 URL,然后简单地使用此命令将该 url 添加为远程:

git remote add upstream https://github.com/Azure/azure-powershell.git

更新我的本地副本

我的存储库的本地副本(我的计算机上的副本)现在有两个链接(远程)。一个指的是我的 GitHub 帐户上的副本,称为 origin,另一个指的是 GitHub 上的原始版本。要下载对原始版本所做的更新,我使用命令 fetch,告诉它从名为上游的远程获取。

git fetch upstream

这将更新我的计算机有关远程的信息,但不会对我的本地副本执行任何操作。现在我可以使用 git diff 比较本地副本和上游远程副本之间的更改。

git diff upstream/dev

Git diff 用于比较文件的差异,默认情况下它会打开一个文本查看器,看起来非常像 Linux 中的“less”。在这里,我可以使用箭头键和 PageUp/PageDown 导航文本并按“q”退出。我还可以执行一些更高级的操作,例如搜索,要获得完整的帮助,请按“h”。例如,如果我想查看单个文件的更改,可以通过将文件路径附加到上一个命令来轻松完成。

git diff upstream/dev .toolsAzureRMAzureRM.psd1

一旦我完成了上游远程与本地存储库的比较,我可以使用合并命令将所有更改从上游引入到我当前的分支中。

git merge upstream/dev

在 GitHub 上更新我的副本

现在我的本地存储库应该位于我的原始存储库(我在 GitHub 上的副本)之前。要将新的更新(如果有)发送到 GitHub 上的副本,我只需进行推送即可。

git push origin

如果 origin 是我的默认遥控器,我不需要在这里命名它,但我想特别清楚我想要推送的位置并没有什么坏处。这是我用来保持我的叉子最新的过程。如果您以任何其他方式进行操作,请随时发表评论。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯