我试图git克隆LibreOffice代码库,但目前我有一个大约300kbps的互联网连接,它只是什么都不稳定。我可以在任何时候恢复连接,但是git克隆进程已经停止工作,没有办法让它再次运行。有没有什么方法可以让git克隆下载更具抗失败性?

我自己考虑的一个选择是下载别人的.git目录,但这过于依赖他人,对我来说似乎不是最好的解决方案。


当前回答

这个问题也困扰着我。对我来说,有一个变通办法。它可能适用于你,也可能不适用。

我有时会使用手机在远程系统上启动git操作。如果我的wi-fi断了,会话当然会结束,git会放弃整个克隆操作而不恢复。但是由于从我的远程系统到git master的互联网连接是可靠的,所以没有必要让克隆停止。我所需要的只是从终端会话分离克隆的常识。这可以通过使用screen/tmux或nohup/daemon来完成。所以在我的情况下,这是一个生活设备故障。

其他回答

我想到的两种解决方案(或者说是变通方法)是:

Use shallow clone i.e. git clone --depth=1, then deepen this clone using git fetch --depth=N, with increasing N. You can use git fetch --unshallow (since 1.8.0.3) to download all remaining revisions. Ask somebody to bundle up to some tagged release (see git-bundle(1) manpage). The bundle itself is an ordinary file, which you can download any way, via HTTP/FTP with resume support, via BitTorrent, via rsync, etc. The you can create clone from bundle, fix configuration, and do further fetches from official LibreOffice repository.

我想把我的5美分放在这里。 这实际上帮助我解决了这个问题

关闭压缩 增加http.postBuffer 做部分克隆 导航到克隆目录并获取克隆的其余部分 拉动剩下的部分

git config --global core.compression 0
git config --global https.postBuffer 524288000
git clone  <your_git_http_url_here> --depth 1
git fetch --unshallow 
git pull --all

这帮助我在8Mbps adsl连接上克隆~3GB的repo,当然我必须执行取回和拉几次,但仍然…

如果你可以访问第三方服务器,你可以克隆那里,然后复制。

对我来说最有效的解决方法是:

我也遇到过同样的问题,因为网络连接不好。所以我想出了以下解决方案:

我在服务器上创建了一个小的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文件。

增加缓冲区大小将有助于解决这个问题。按照步骤做就可以了。

打开终端或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> 等待克隆完成。