我试图git克隆LibreOffice代码库,但目前我有一个大约300kbps的互联网连接,它只是什么都不稳定。我可以在任何时候恢复连接,但是git克隆进程已经停止工作,没有办法让它再次运行。有没有什么方法可以让git克隆下载更具抗失败性?
我自己考虑的一个选择是下载别人的.git目录,但这过于依赖他人,对我来说似乎不是最好的解决方案。
我试图git克隆LibreOffice代码库,但目前我有一个大约300kbps的互联网连接,它只是什么都不稳定。我可以在任何时候恢复连接,但是git克隆进程已经停止工作,没有办法让它再次运行。有没有什么方法可以让git克隆下载更具抗失败性?
我自己考虑的一个选择是下载别人的.git目录,但这过于依赖他人,对我来说似乎不是最好的解决方案。
当前回答
我想到的两种解决方案(或者说是变通方法)是:
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,当然我必须执行取回和拉几次,但仍然…
如果我们假设服务器有良好的带宽(并且你有一个服务器),另一个答案是:
使用服务器端Git包装器创建自己的服务器 在您的服务器中克隆它 使用服务器端Zip Archiver's进行压缩 从服务器端简历下载
但这只适用于非常基本的web开发经验;) 此外,你还需要在你的服务器上安装git.exe
使用CNTRL Z停止克隆。不要关闭终端,让系统/笔记本电脑处于休眠状态,然后稍后使用fg命令继续。 我今天在试图从github克隆一个回购时也面临着同样的问题。这为我节省了时间。
您可以尝试在hg-git扩展中使用mercurial。
如果这不起作用,你可以使用git fetch <commit-id>来获取远程git存储库的一部分(你可以获取一个空的git存储库,没有必要使用clone来创建它)。但是当您使用这种方法时,您可能需要纠正分支配置(=创建本地和远程跟踪分支)。
让我们把git克隆分解成它的组成部分,并使用git签出来防止重新下载文件。
当git克隆运行时,它所做的前几件事等同于
git init
git remote add origin <repo_url>
git fetch origin <branch>
如果您手动运行上述步骤,并假设它们正确完成,您现在可以根据需要多次运行以下步骤:
git checkout --force <branch>
请注意,每次运行时它都会检出所有文件,但您不必重新下载文件,这可能会节省大量时间。