您的最新评论表明您正在寻找性能优化.这有帮助.
您可以按照这些说明创建github存储库的本地镜像.您可以定期更新它,或安排从github 接收Web挂钩以"按需"更新本地镜像.为此,您需要设置一个小型Web服务,以响应来自github的挂钩.您可以通过访问https://github.com/someuser/someproject/settings/hooks/new来添加Web挂钩.您可能想要选择"让我选择单个事件"单选按钮,然后选择:
这将使您的缓存与可用标记和分支的更改保持同步.
设置一个git服务器,使该存储库在本地可用.这可以像运行一样简单git daemon,也可以通过ssh访问本地帐户,或者更全面的功能,具体取决于您当地的要求.
然后你会设置你的本地工作副本,如下所示:
$ git clone http://localrepository/someproject.git
$ cd someproject
$ git remote set-url --push http://github.com/someuser/someproject.git
Run Code Online (Sandbox Code Playgroud)
这会将每个存储库设置为从本地缓存中提取,但将上游更改推送到github.
你应该看看git-cache-http-server项目.我认为它部分实现了你需要的东西(和@larsks帖子中的想法类似).
它是一个NodeJS软件,运行HTTP服务器,为您提供对本地缓存的git存储库的访问.服务器会在需要时自动获取上游更改.如果你使用那些本地git存储库而不是远程存储库,你的git客户端将被提供本地缓存的内容.
如果在单独的主机(例如VM或容器)上运行git-cache-http-server,则可以将本地git客户端配置为通过将其配置为替换https://github.com为类似的内容来自动克隆和从缓存中获取http://gitcache/github.com.这可以通过以下配置来实现:
git config --global url."http://gitcache:1234/".insteadOf https://
Run Code Online (Sandbox Code Playgroud)
目前,该软件仅提供用于克隆和更新存储库的缓存,没有用于推送更改的规定.对于某些用例,考虑到需要提取多个存储库内容的CI基础结构,即使只有一个已更改或您提到的自动化测试,这也很有用.
| 归档时间: |
|
| 查看次数: |
7154 次 |
| 最近记录: |