我试图git克隆LibreOffice代码库,但目前我有一个大约300kbps的互联网连接,它只是什么都不稳定。我可以在任何时候恢复连接,但是git克隆进程已经停止工作,没有办法让它再次运行。有没有什么方法可以让git克隆下载更具抗失败性?
我自己考虑的一个选择是下载别人的.git目录,但这过于依赖他人,对我来说似乎不是最好的解决方案。
我试图git克隆LibreOffice代码库,但目前我有一个大约300kbps的互联网连接,它只是什么都不稳定。我可以在任何时候恢复连接,但是git克隆进程已经停止工作,没有办法让它再次运行。有没有什么方法可以让git克隆下载更具抗失败性?
我自己考虑的一个选择是下载别人的.git目录,但这过于依赖他人,对我来说似乎不是最好的解决方案。
当前回答
增加缓冲区大小将有助于解决这个问题。按照步骤做就可以了。
打开终端或Git Bash,用cd到你想克隆repo的位置。 将压缩设置为0 Git配置——global core.compression 0 设置postBuffer大小 Git配置——global http。postBuffer 1048576000 设置maxRequestBuffer大小 Git配置——global http。maxRequestBuffer 100 现在开始克隆 Git克隆<repo url> 等待克隆完成。
其他回答
我觉得这个还没准备好。有一个旧的GSoC页面计划实现你想要的功能。我最好的办法是,像你建议的那样把它下载成一个目录。我假设你能够通过其他协议恢复下载。
Restartable Clone When cloning a large repository (such as KDE, Open Office, Linux kernel) there is currently no way to restart an interrupted clone. It may take considerable time for a user on the end of a small pipe to download the data, and if the clone is interrupted in the middle the user currently needs to start over from the beginning and try again. For some users this may make it impossible to clone a large repository. Goal: Allow git-clone to automatically resume a previously failed download over the native git:// protocol. Language: C Mentor: Shawn Pearce Suggested by: Shawn Pearce on gmane
更新
除了浅克隆(git clone——depth=1)的建议外,如果有人可以为您创建一个裸库(如果您可以与提供者沟通),这可能会有所帮助。您可以轻松地将裸存储库转换为完整存储库。另外,请阅读答案中的评论,因为肤浅的克隆可能并不总是有帮助。
对我来说最有效的解决方法是:
我也遇到过同样的问题,因为网络连接不好。所以我想出了以下解决方案:
我在服务器上创建了一个小的php文件,以zip文件的形式下载包:
<?php
$url = "https://codeload.github.com/CocoaPods/Specs/zip/master";
file_put_contents("coco.zip", fopen($url, 'r'));
?>
<a href="coco.zip">coco.zip</a>
然后使用任何支持恢复的下载管理器下载zip文件。
“永远不要低估一只信鸽和一捆SD卡的带宽”将是这个答案的现代形式。涂上沥青,简单的cp -a,随便什么,然后把这该死的东西寄出去。找一个愿意花两分钟时间把u盘放进SASE的人。在那里找个联系人,他们甚至可以帮你。
如果你可以访问第三方服务器,你可以克隆那里,然后复制。
使用一个git代理,比如ngitcached或者git-proxy。