此版本的 GitHub Enterprise 已停止服务 2021-09-23. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

镜像仓库

To maintain a mirror of a repository without forking it, you can run a special clone command, then mirror-push to the new repository.

Before you can push the original repository to your new copy, or mirror, of the repository, you must create the new repository on 您的 GitHub Enterprise Server 实例. 在以下示例中,exampleuser/new-repositoryexampleuser/mirrored 是镜像。

镜像仓库

  1. 打开 Terminal(终端)Terminal(终端)Git Bash
  2. 创建仓库的裸克隆。
    $ git clone --bare https://主机名/exampleuser/old-repository.git
  3. 镜像推送至新仓库。
    $ cd old-repository
    $ git push --mirror https://主机名/exampleuser/new-repository.git
  4. 删除您之前创建的临时本地仓库。
    $ cd ..
    $ rm -rf old-repository

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

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

镜像其他位置的仓库

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

  1. 打开 Terminal(终端)Terminal(终端)Git Bash
  2. 创建仓库的裸镜像克隆。
    $ git clone --mirror https://主机名/exampleuser/repository-to-mirror.git
  3. 设置到镜像的推送位置。
    $ cd repository-to-mirror
    $ git remote set-url --push origin https://主机名/exampleuser/mirrored

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

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