GitHub镜像到本地计算机/服务器

时间:2018-09-04 12:40:37

标签: git github

我们从github使用了几个项目(从github下载)。由于这些项目是从github镜像为cmake中的third_party项目,因此干净的构建会导致所有项目再次被下载。我们落后于代理,有时需要1-2小时才能下载(Traffic正在与FB流量竞争,因此我们无法控制)。

我一直在考虑在本地设置镜像服务器,所有项目下载均从该服务器进行。但是,我不想更改本地服务器中的路径(即 https://github.com/google/grpc.git 应该与 https://github-local-mirror.com/google/grpc.git 相同)。

我了解我可以配置本地git repo并从本地git repo克隆并定期从github更新本地git repo,但是路径问题非常重要。

这里有没有办法保持与github相同的路径?有什么叫做本地镜像服务的东西可以让github项目本地镜像吗?

到目前为止,我已经阅读了所有有关github镜像的问题,我想从github镜像。因此,在标记为重复项之前,请先考虑一下。

1 个答案:

答案 0 :(得分:0)

  

这里有没有办法保持与github相同的路径?

是的:只需使用与GitHub上相同的路径将它们克隆到您的镜像上即可。

  

有没有什么叫做本地镜像服务的东西,可以将github项目本地镜像?

不,但这很简单。在您的镜像计算机上,您将要运行:

git clone --mirror <github-URL>

使得每个克隆在GitHub上的 google/path 上都可以在path上的 镜像上使用。完成此操作后,您只需在每个克隆中运行git fetch --prune(或git remote update --prune)即可。

鉴于您将要维护的镜像有限列表很小,您只需在镜像计算机上有一个path列表(包含一个文件),然后使用cron作业即可运行更新,例如:

*/5 * * * *   for path in $(cat $HOME/mirrors); do (cd $path && git remote update -p); done

或类似的