在将原始存储库推送到存储库的新副本或镜像之前,必须在 你的 GitHub Enterprise Server 实例 上创建新的存储库。 在这些示例中,exampleuser/new-repository
或 exampleuser/mirrored
为镜像。
镜像仓库
-
打开终端终端Git Bash。
-
创建仓库的裸克隆。
git clone --bare https://HOSTNAME/EXAMPLE-USER/OLD-REPOSITORY.git
-
镜像推送至新仓库。
cd OLD-REPOSITORY.git git push --mirror https://HOSTNAME/EXAMPLE-USER/NEW-REPOSITORY.git
-
删除您之前创建的临时本地仓库。
cd .. rm -rf OLD-REPOSITORY.git
镜像包含 Git Large File Storage 对象的仓库。
-
打开终端终端Git Bash。
-
创建仓库的裸克隆。 将示例用户名替换为拥有仓库的个人或组织的名称,并将示例仓库名称替换为要复制的仓库的名称。
git clone --bare https://HOSTNAME/EXAMPLE-USER/OLD-REPOSITORY.git
-
导航到刚克隆的仓库。
cd OLD-REPOSITORY.git
-
拉取仓库的 Git Large File Storage 对象。
git lfs fetch --all
-
镜像推送至新仓库。
git push --mirror https://HOSTNAME/EXAMPLE-USER/NEW-REPOSITORY.git
-
将仓库的 Git Large File Storage 对象推送至镜像。
git lfs push --all https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git
-
删除您之前创建的临时本地仓库。
cd .. rm -rf OLD-REPOSITORY.git
镜像其他位置的仓库
如果要镜像其他位置的仓库,包括从原始位置获取更新,可以克隆镜像并定期推送更改。
-
打开终端终端Git Bash。
-
创建仓库的裸镜像克隆。
git clone --mirror https://HOSTNAME/EXAMPLE-USER/REPOSITORY-TO-MIRROR.git
-
设置到镜像的推送位置。
cd REPOSITORY-TO-MIRROR git remote set-url --push origin https://HOSTNAME/EXAMPLE-USER/MIRRORED
与裸克隆一样,镜像的克隆包括所有远程分支和标记,但每次获取时都会覆盖所有本地引用,因此它始终与原始仓库相同。 设置推送 URL 可简化至镜像的推送。
-
如需更新镜像,请获取更新和推送。
git fetch -p origin git push --mirror