codecamp

GitHub 复制仓库

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

在复制仓库和和推送到仓库的新副本或镜像之前,必须在 GitHub 上创建新仓库。 在以下示例中,exampleuser/new-repositoryexampleuser/mirrored 是镜像。

镜像仓库

  1. 打开 Git Bash。

  1. 创建仓库的裸克隆。

   $ git clone --bare https://github.com/exampleuser/old-repository.git

  1. 镜像推送至新仓库。

   $ cd old-repository.git
   $ git push --mirror https://github.com/exampleuser/new-repository.git

  1. 删除您之前创建的临时本地仓库。

   $ cd ..
   $ rm -rf old-repository.git

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

  1. 打开 Git Bash。

  1. 创建仓库的裸克隆。 将示例用户名替换为拥有仓库的个人或组织的名称,并将示例仓库名称替换为要复制的仓库的名称。

   $ git clone --bare https://github.com/exampleuser/old-repository.git

  1. 导航到刚克隆的仓库。

   $ cd old-repository.git

  1. 拉取仓库的 Git Large File Storage 对象。

   $ git lfs fetch --all

  1. 镜像推送至新仓库。

   $ git push --mirror https://github.com/exampleuser/new-repository.git

  1. 将仓库的 Git Large File Storage 对象推送至镜像。

   $ git lfs push --all https://github.com/exampleuser/new-repository.git

  1. 删除您之前创建的临时本地仓库。

   $ cd ..
   $ rm -rf old-repository.git

镜像其他位置的仓库

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

  1. 打开 Git Bash。

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

   $ git clone --mirror https://github.com/exampleuser/repository-to-mirror.git

  1. 设置到镜像的推送位置。

   $ cd repository-to-mirror.git
   $ git remote set-url --push origin https://github.com/exampleuser/mirrored

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

$ git fetch -p origin
$ git push --mirror
GitHub 限制查看仓库中的内容和差异
GitHub 克隆仓库
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

GitHub 身份验证

在 GitHub 上管理订阅和通知

在 GitHub 上管理活动的订阅

GitHub 组织和团队

GitHub 管理对组织仓库的 Git 访问

GitHub 计费和付款

GitHub 使用议题和拉取请求进行协作

GitHub 在具有代码质量功能的仓库上进行协作

管理在 GitHub 上的工作

GitHub 建立强大的社区

GitHub 管理仓库

GitHub 自定义 GitHub 工作流程

在 GitHub Marketplace 中购买并安装应用程序

通过 GitHub Jobs 寻找人才

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }