复制仓库
要复制存储库而不对其进行复制,可以运行特殊克隆命令,然后镜像推送到新仓库。
本文内容
- 镜像仓库
- Mirroring a repository that contains Git Large File Storage objects
- Mirroring a repository in another location
在复制仓库和和推送到仓库的新副本或镜像之前,必须在 您的 GitHub Enterprise Server 实例 上创建新仓库。 在以下示例中,exampleuser/new-repository
或 exampleuser/mirrored
是镜像。
镜像仓库
-
打开 Terminal(终端)Terminal(终端)Git Bash。
-
创建仓库的裸克隆。
$ git clone --bare https://主机名/exampleuser/old-repository.git
-
镜像推送至新仓库。
$ cd old-repository.git $ git push --mirror https://主机名/exampleuser/new-repository.git
-
删除步骤 1 中创建的临时本地仓库。
$ cd .. $ rm -rf old-repository.git
Mirroring a repository that contains Git Large File Storage objects
-
打开 Terminal(终端)Terminal(终端)Git Bash。
-
创建仓库的裸克隆。 将示例用户名替换为拥有仓库的个人或组织的名称,并将示例仓库名称替换为要复制的仓库的名称。
$ git clone --bare https://主机名/exampleuser/old-repository.git
-
导航到刚克隆的仓库。
$ cd old-repository.git
-
拉取仓库的 Git Large File Storage 对象。
$ git lfs fetch --all
-
镜像推送至新仓库。
$ git push --mirror https://主机名/exampleuser/new-repository.git
-
将仓库的 Git Large File Storage 对象推送至镜像。
$ git lfs push --all https://github.com/exampleuser/new-repository.git
-
删除步骤 1 中创建的临时本地仓库。
$ cd .. $ rm -rf old-repository.git
Mirroring a repository in another location
If you want to mirror a repository in another location, including getting updates from the original, you can clone a mirror and periodically push the changes.
-
打开 Terminal(终端)Terminal(终端)Git Bash。
-
创建仓库的裸镜像克隆。
$ git clone --mirror https://主机名/exampleuser/repository-to-mirror.git
-
设置到镜像的推送位置。
$ cd repository-to-mirror.git $ git remote set-url --push origin https://主机名/exampleuser/mirrored
As with a bare clone, a mirrored clone includes all remote branches and tags, but all local references will be overwritten each time you fetch, so it will always be the same as the original repository. 设置推送 URL 可简化至镜像的推送。 如需更新镜像,请获取更新和推送。
$ git fetch -p origin
$ git push --mirror