在国内如果不用代理,使用git clone
从Github拉一些大的项目经常失败,git clone
是不支持断点续传的,如果要断点续传可以使用以下的方法。
1 Git断点续传项目
假设我们要从GitHub拉取OpenCV:https://github.com/opencv/opencv进行编译,可以按照以下的方法。
- 首先新建一个opencv文件夹,然后进入新建的opencv目录,在命令行工具执行
git init
命令 - 再执行
git fetch [项目地址]
命令,这里以上面的opencv为例,就是git fetch https://github.com/opencv/opencv
- 如果第2步中断或者失败,则重复执行第2步,直到完成下载
- 下载完成之后,再执行
git checkout FETCH_HEAD
命令 - 再执行
git remote add origin [项目地址]
命令,以opencv为例,就是git remote add origin https://github.com/opencv/opencv
- 再执行
git pull origin master
命令 - 再执行
git checkout master
命令
在Linux系统下,可以写一个shell脚本,自动循环进行git fetch
,比如
#!/bin/bash
set -x
num=1
while [ $num -le 2000 ]; do
git fetch https://github.com/opencv/opencv
if [ $? -ne 0 ]; then
num=$(($num+1))
else
break
fi
done
上面脚本以拉取opencv为例,如果git fetch
失败会重复尝试2000次,直到成功拉取。
参考
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:Git – 断点续传git大项目
原文链接:https://www.stubbornhuang.com/2804/
发布于:2023年09月14日 16:48:03
修改于:2023年09月14日 16:48:03
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52