注意
如果您的项目托管在其他 Git 代码托管服务上,您可以使用 GitHub Importer 工具自动将项目导入到 GitHub。欲了解更多信息,请参阅 关于 GitHub Importer。
在将原始仓库推送到新副本(即镜像)之前,您必须在 GitHub.com 上创建新的仓库。在这些示例中,exampleuser/new-repository 或 exampleuser/mirrored 是镜像仓库。
镜像仓库
-
打开 终端终端Git Bash。
-
创建仓库的裸克隆。
git clone --bare https://github.com/EXAMPLE-USER/OLD-REPOSITORY.git -
将镜像推送到新仓库。
cd OLD-REPOSITORY git push --mirror https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git -
删除之前创建的临时本地仓库。
cd .. rm -rf OLD-REPOSITORY
镜像包含 Git 大文件存储对象的仓库
-
打开 终端终端Git Bash。
-
创建仓库的裸克隆。将示例用户名替换为拥有该仓库的个人或组织名称,并将示例仓库名替换为您想要复制的仓库名称。
git clone --bare https://github.com/EXAMPLE-USER/OLD-REPOSITORY.git -
进入您刚克隆的仓库。
cd OLD-REPOSITORY -
拉取仓库的 Git 大文件存储对象。
git lfs fetch --all -
将镜像推送到新仓库。
git push --mirror https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git -
将仓库的 Git 大文件存储对象推送到您的镜像。
git lfs push --all https://github.com/EXAMPLE-USER/NEW-REPOSITORY.git -
删除之前创建的临时本地仓库。
cd .. rm -rf OLD-REPOSITORY
在其他位置镜像仓库
如果您想在其他位置镜像仓库,包括从原始仓库获取更新,您可以克隆一个镜像并定期推送更改。
-
打开 终端终端Git Bash。
-
创建仓库的裸镜像克隆。
git clone --mirror https://github.com/EXAMPLE-USER/REPOSITORY-TO-MIRROR.git -
将推送位置设置为您的镜像。
cd REPOSITORY-TO-MIRROR git remote set-url --push origin https://github.com/EXAMPLE-USER/MIRRORED与裸克隆类似,镜像克隆包含所有远程分支和标签,但每次获取时本地引用都会被覆盖,因此它始终与原始仓库保持一致。为推送设置 URL 可简化向镜像推送的操作。
-
要更新您的镜像,请获取更新并推送。
git fetch -p origin git push --mirror