Skip to main content

同步复刻

同步仓库的复刻以通过上游仓库使其保持最新。

People with write access for a forked repository can sync the fork to the upstream repository.

从 web UI 同步复刻

  1. 在 GitHub 上,导航到您想要与上游版本库同步的复刻仓库主页。
  2. 选择 Fetch upstream(提取上游)下拉菜单。 "Fetch upstream(提取上游)"下拉菜单
  3. 查看上游仓库中有关提交的细节,然后单击“提取并合并”。 "提取并合并"按钮

如果上游仓库的更改导致冲突,GitHub 将提示您创建拉取请求以解决冲突。

使用 GitHub CLI 同步复刻

GitHub CLI 是用于从计算机的命令行使用 GitHub 的开源工具。 从命令行操作时,您可以使用 GitHub CLI 来节省时间并避免切换上下文。 要了解 GitHub CLI 的更多信息,请参阅“关于 GitHub CLI”。

若要从其父级更新远程复刻,请使用 gh repo sync 子命令,并提供复刻名称作为参数。

$ gh repo sync owner/cli-fork

如果来自上游存储库的更改导致冲突,则 GitHub CLI 无法同步。 您可以设置 -force 标志以覆盖目标分支。

从命令行同步复刻

必须在 Git 中配置指向上游仓库的远程仓库,然后才能将您的复刻与上游仓库同步。

  1. 打开 Terminal(终端)Terminal(终端)Git Bash

  2. 将当前工作目录更改为您的本地仓库。

  3. 从上游仓库获取分支及其各自的提交。 对 BRANCHNAME 的提交将存储在本地分支 upstream/BRANCHNAME 中。

    $ git fetch upstream
    > remote: Counting objects: 75, done.
    > remote: Compressing objects: 100% (53/53), done.
    > remote: Total 62 (delta 27), reused 44 (delta 9)
    > Unpacking objects: 100% (62/62), done.
    > From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
    >  * [new branch]      main     -> upstream/main
  4. 检出复刻的本地默认分支 - 在本例中,我们使用 main

    $ git checkout main
    > Switched to branch 'main'
  5. 将上游默认分支 - 本例中为 upstream/main - 的更改合并到本地默认分支。 这会使复刻的默认分支与上游仓库同步,而不会丢失本地更改。

    $ git merge upstream/main
    > Updating a422352..5fdff0f
    > Fast-forward
    >  README                    |    9 -------
    >  README.md                 |    7 ++++++
    >  2 files changed, 7 insertions(+), 9 deletions(-)
    >  delete mode 100644 README
    >  create mode 100644 README.md

提示:同步复刻仅更新仓库的本地副本。 要在 GitHub.com 上更新复刻,您必须推送更改