Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

复制仓库

要维护存储库的镜像而不对其进行复刻,可以运行特殊的克隆命令,然后镜像推送到新存储库。

在将原始存储库推送到存储库的新副本或镜像之前,必须在 your GitHub Enterprise Server instance 上创建新的存储库。 在这些示例中,exampleuser/new-repositoryexampleuser/mirrored 为镜像。

镜像仓库

  1. 打开终端终端Git Bash
  2. 创建仓库的裸克隆。
    $ git clone --bare https://HOSTNAME/EXAMPLE-USER/OLD-REPOSITORY.git
  3. 镜像推送至新仓库。
    $ cd OLD-REPOSITORY.git
    $ git push --mirror https://HOSTNAME/EXAMPLE-USER/NEW-REPOSITORY.git
  4. 删除您之前创建的临时本地仓库。
    $ cd ..
    $ rm -rf OLD-REPOSITORY.git

镜像包含 Git Large File Storage 对象的仓库。

  1. 打开终端终端Git Bash
  2. 创建仓库的裸克隆。 将示例用户名替换为拥有仓库的个人或组织的名称,并将示例仓库名称替换为要复制的仓库的名称。
    $ git clone --bare https://HOSTNAME/EXAMPLE-USER/OLD-REPOSITORY.git
  3. 导航到刚克隆的仓库。
    $ cd OLD-REPOSITORY.git
  4. 拉取仓库的 Git Large File Storage 对象。
    $ git lfs fetch --all
  5. 镜像推送至新仓库。
    $ git push --mirror https://HOSTNAME/EXAMPLE-USER/NEW-REPOSITORY.git
  6. 将仓库的 Git Large File Storage 对象推送至镜像。
    $ git lfs push --all https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
  7. 删除您之前创建的临时本地仓库。
    $ cd ..
    $ rm -rf OLD-REPOSITORY.git

镜像其他位置的仓库

如果要镜像其他位置的仓库,包括从原始位置获取更新,可以克隆镜像并定期推送更改。

  1. 打开终端终端Git Bash

  2. 创建仓库的裸镜像克隆。

    $ git clone --mirror https://HOSTNAME/EXAMPLE-USER/REPOSITORY-TO-MIRROR.git
  3. 设置到镜像的推送位置。

    $ cd REPOSITORY-TO-MIRROR
      $ git remote set-url --push origin https://HOSTNAME/EXAMPLE-USER/MIRRORED

    与裸克隆一样,镜像的克隆包括所有远程分支和标记,但每次获取时都会覆盖所有本地引用,因此它始终与原始仓库相同。 设置推送 URL 可简化至镜像的推送。

  4. 如需更新镜像,请获取更新和推送。

    $ git fetch -p origin
    $ git push --mirror