Skip to main content

同步复刻

谁可以使用此功能?

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

Platform navigation

  1. 在 上,导航到你想要与上游仓库库同步的复刻仓库的主页。

  2. 在文件列表上方,选择“同步分支”下拉菜单。

    分支主页的屏幕截图。 标有同步图标和“同步分支”的下拉菜单以深橙色框出。

  3. 查看有关上游存储库提交的详细信息,然后单击“更新分支”。

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

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

要从其父级更新远程分支,请使用 gh repo sync -b BRANCH-NAME 子命令并提供分叉和分支名作为参数。

gh repo sync owner/cli-fork -b BRANCH-NAME

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

必须先在 Git 中配置指向上游存储库的远程库,然后才能将分支与上游存储库同步。 有关详细信息,请参阅“为分支配置远程存储库”。

  1. 打开终端终端Git Bash

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

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

    $ 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://HOSTNAME/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
    

    如果本地分支没有任何唯一提交,Git 将执行快速转发。 有关详细信息,请参阅 Git 文档中的基本分支和合并

    $ git merge upstream/main
    > Updating 34e91da..16c56ad
    > Fast-forward
    >  README.md                 |    5 +++--
    >  1 file changed, 3 insertions(+), 2 deletions(-)
    

    如果本地分支具有唯一提交,则可能需要解决冲突。 有关详细信息,请参阅“解决合并冲突”。

提示

同步分支只更新存储库的本地副本。 若要在 你的 Enterprise Server 实例 上更新分支,必须推送更改