1. 概述

在本快速教程中,我们将学习如何将GitHub仓库与原始仓库同步,原始仓库是被fork出来的。

2. 同步仓库

有以下两种方法可以同步仓库:

2.1. 使用GitHub网页界面

第一种方法是使用GitHub的网页界面。如果我们输入正在工作的分支的URL,会得到如下内容:

旧分支

为了将分支与原始仓库同步,应该点击“同步fork”:

同步分支

分支开始与原始仓库同步。完成后,分支将保持最新状态:

新分支

我们成功地将分支与原始仓库进行了同步。

2.2. 使用命令行(CLI)

另一种方法是使用命令行。要使用命令行同步我们的fork,首先应该进行克隆

$ git clone https://github.com/[username]/[repository_name]

在克隆我们的fork之后,我们需要向原始仓库添加一个远程。我们可以给它起任何名字。这里我们叫它“上游”:

$ git remote add upstream https://github.com/[original_username]/[original_repository_name]

接下来,我们应该使用fetch从“上游”远程下载所有分支:

$ git fetch upstream

然后,切换到我们要更新的分支:

$ git checkout branch3
Branch 'branch3' set up to track remote branch 'branch3' from 'origin'.
Switched to a new branch 'branch3'

现在,我们需要改变本地分支的基础,使得我们的新提交出现在“上游”仓库的“主”分支之上

$ git rebase upstream/master
First, rewinding head to replay your work on top of it...
Fast-forwarded branch3 to upstream/master.

最后,将更改推送到GitHub上的本地仓库:

$ git push -f origin branch3

我们使用了-f标志强制推送更改到远程仓库。

3. 总结

在本快速教程中,我们学习了如何使用GitHub的网页界面和命令行两种方式,将fork仓库与原始仓库进行同步。