如何缓存GitHub仓库,以便第二次Git克隆将使用缓存而不是GitHub仓库

5

场景:

1) 我们在中国,访问GitHub很慢,有时甚至不可能,但我们不能没有GitHub。

2) 在开发iOS项目时,我们使用CocoaPods,它使用了很多GitHub仓库,因此当安装Pods时,很多命令,如git clone git@github.com/reactivecocoa/ReactiveCocoa将被触发。

那么我们有什么方法可以改善这个过程吗? 对我来说,最好的解决方案似乎是制作这些GitHub仓库的本地缓存,当触发git clone git@github.com/reactivecocoa/ReactiveCocoa时,实际上会触发git clone http://192.168.1.199/repos/reactivecocoa/ReactiveCocoa,服务器可以告诉我们某些Pod是否存在,如果存在,则返回缓存的结果,否则进行GitHub请求并缓存结果。

但是我找不到可行的策略来实现这一点,有什么建议吗?

1个回答

3
git config --global url."git@github.com:reactivecocoa/ReactiveCocoa".insteadOf "http://192.168.1.199/repos/reactivecocoa/ReactiveCocoa"

它可以工作!一些提示:在192.168.1.199中克隆的repos应该附加“--bare”,可能需要“git update-server-info”。 - limboy
git config --global url."http://192.168.1.199/repos/reactivecocoa/ReactiveCocoa".insteadOf "git@github.com:reactivecocoa/ReactiveCocoa" - limboy
为了让这更加容易,我编写了一个脚本来完成这个任务 https://github.com/lzyy/github-proxy - limboy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接