我试图克隆LibreOffice代码库,但目前我有一个大约300kbps的互联网连接,它只是稳定的东西.我可以随时获取连接,但随后git clone进程已经停止工作,无法让它再次运行.有没有办法让更多的抗故障git克隆下载?
我认为自己的一个选择是下载其他人的.git目录,但这过于依赖其他人,对我来说似乎不是最好的解决方案.
Jak*_*ski 117
想到的两个解决方案(或更确切地说是解决方法)是:
使用浅克隆即git clone --depth=1,然后使用增加N来加深此克隆.您可以使用(自1.8.0.3开始)下载所有剩余的修订版.git fetch --depth=Ngit fetch --unshallow
请某人捆绑一些标记版本(请参阅git-bundle(1)联机帮助页).捆绑包本身是一个普通的文件,您可以通过HTTP/FTP以及简历支持,通过BitTorrent,通过rsync等以任何方式下载.您可以从捆绑包创建克隆,修复配置,并从官方LibreOffice存储库进一步提取.
Jun*_*ter 68
我认为这还没有准备好.有一个旧的GSoC页面,计划实现您想要的功能.我最好的选择是,像你建议的那样将其下载为目录.我假设你能够通过其他协议恢复下载.
可重新启动的克隆
克隆大型存储库(例如KDE,Open Office,Linux内核)时,目前无法重新启动中断的克隆.对于小管道末端的用户来说,下载数据可能需要相当长的时间,如果克隆在中间被中断,则用户当前需要从头开始重试并再次尝试.对于某些用户,这可能使得无法克隆大型存储库.
目标:允许git-clone通过本机git://协议自动恢复以前失败的下载.语言:C导师:Shawn Pearce建议者:Shawn Pearce on gmane
除了git clone --depth=1其他一个答案中的浅层克隆()建议之外,如果您可以与提供商进行通信,那么有人可以为您创建一个裸存储库可能会有所帮助.您可以轻松地将裸存储库转换为完整存储库.同时阅读该答案中的注释,因为浅层克隆可能并不总是有用.
Raf*_*sin 15
此方法使用第三方服务器.
首先,执行
git clone --bare,然后
rsync -v -P -e ssh user@host:repo.git .
您可以在Windows下使用msys.
您可以"下载其他人的.git目录",但其他人是官方存储库本身.该LibreOffice的资料库是通过HTTP提供,例如他们build.git是在http://anongit.freedesktop.org/git/libreoffice/build.git/(见http://cgit.freedesktop.org/libreoffice/完整列表, http URL位于每个存储库页面的底部).
您在这些http URL上看到的只不过是一个.git目录(实际上是一个"裸"存储库,它只有您在.git目录中找到的内容).它与git://protocol(git daemon)的服务器读取的目录相同.如果您使用Web下载程序(例如wget -m -np)制作这些目录的副本,则可以从副本中克隆它,如果您直接从http存储库克隆,它将起作用.
所以,你可以做的是:每个仓库,得到它与您最喜爱的网络下载从副本复印件(这将处理所有与恢复中断的下载问题),和克隆.如果要更新,请再次使用您喜欢的网络下载程序来更新您的副本,并从该副本中提取.现在,您的克隆和更新与您喜欢的网络下载器一样可以抵御糟糕的连接.
" 永远不要低估载体鸽和一捆SD卡的带宽 "将成为这个答案的现代形式.瞄准它,简单地cp -a说它,无论如何,并邮寄该死的东西.找一个愿意花两分钟时间将拇指驱动器放入SASE的人.找到一个联系人,他们甚至可以为你做.
git clone --depth <Number> <repository> --branch <branch name> --single-branch
Run Code Online (Sandbox Code Playgroud)
这个命令帮助我(感谢Nicola Paolucci)
例如
git clone --depth 1 https://github.com/gokhanmoral/siyahkernel3 --branch ics --single-branch
Run Code Online (Sandbox Code Playgroud)
小智 6
增加缓冲区大小将帮助您解决这个问题。只需按照步骤操作即可。
打开终端或 Git Bash,然后cd转到要克隆 repo 的位置。
将压缩设置为 0
git config --global core.compression 0
Run Code Online (Sandbox Code Playgroud)
设置postBuffer尺寸
git config --global http.postBuffer 1048576000
Run Code Online (Sandbox Code Playgroud)
设置maxRequestBuffer尺寸
git config --global http.maxRequestBuffer 100M
Run Code Online (Sandbox Code Playgroud)
现在开始克隆
git clone <repo url>
Run Code Online (Sandbox Code Playgroud)
等待克隆完成。
让我们分解git clone为组成部分,并使用它git reset来防止重新下载文件。
当git clone运行时,它做的第一件几件事情相当于
git init
git remote add origin <repo_url>
git fetch origin <branch>
Run Code Online (Sandbox Code Playgroud)
如果您手动运行上述步骤,并假设它们已正确完成,则现在可以根据需要多次运行以下步骤:
git checkout --force <branch>
Run Code Online (Sandbox Code Playgroud)
请注意,它将在每次运行时检出所有文件,但您不必重新下载文件,这可以节省大量时间。
我想把我的 5 美分放在这里。这实际上是帮助我解决这个问题的原因
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
Run Code Online (Sandbox Code Playgroud)
这帮助我通过 8Mbps adsl 连接克隆了 ~3GB 的 repo,当然我不得不执行几次提取和拉取,但仍然......
| 归档时间: |
|
| 查看次数: |
54012 次 |
| 最近记录: |