我试图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> 等待克隆完成。
其他回答
增加缓冲区大小将有助于解决这个问题。按照步骤做就可以了。
打开终端或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> 等待克隆完成。
如果你可以访问第三方服务器,你可以克隆那里,然后复制。
我想把我的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,当然我必须执行取回和拉几次,但仍然…
这个问题也困扰着我。对我来说,有一个变通办法。它可能适用于你,也可能不适用。
我有时会使用手机在远程系统上启动git操作。如果我的wi-fi断了,会话当然会结束,git会放弃整个克隆操作而不恢复。但是由于从我的远程系统到git master的互联网连接是可靠的,所以没有必要让克隆停止。我所需要的只是从终端会话分离克隆的常识。这可以通过使用screen/tmux或nohup/daemon来完成。所以在我的情况下,这是一个生活设备故障。
让我们把git克隆分解成它的组成部分,并使用git签出来防止重新下载文件。
当git克隆运行时,它所做的前几件事等同于
git init
git remote add origin <repo_url>
git fetch origin <branch>
如果您手动运行上述步骤,并假设它们正确完成,您现在可以根据需要多次运行以下步骤:
git checkout --force <branch>
请注意,每次运行时它都会检出所有文件,但您不必重新下载文件,这可能会节省大量时间。