github 大项目断点续传

2024-05-09 12:20
文章标签 项目 断点续传 github

本文主要是介绍github 大项目断点续传,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

某天打开github想要clone一个比较大的项目,大概1.5个G 结果发现总是会在中途中断,然后从0开始,每次都手动去弄麻烦的要死。守在电脑前守了半个多小时,发现根本clone不下来! 离谱。

解决办法

1 总体流程

总体来说 比较好用的从github上gitclone大项目的流程是这样

  1. 新建目录, 命令行进入目录,执行 git init

  2. 命令行执行: git fetch [项目地址]

  3. 若断掉后,重复执行步骤2, 直到完成下载

  4. 命令行执行 git checkout FETCH_HEAD

  5. 命令行执行 git remote add origin [项目地址]

  6. 命令行执行 git pull origin master

  7. 命令行执行 git checkout master

  8. git pull

2 通过脚本

在执行第二步 git fetch 的时候 ,其实也是会频繁中断的,跟gitclone中断的频率差不多,但是貌似这一步会有缓存?? 我不清楚哦
通过这个脚本 可以不停的fetch 直到结束。

#!/bin/bash
set -xnum=1
while [ $num -le 2000 ]; dogit fetch https://github.com/xxx.gitif [ $? -ne 0 ]; thennum=$(($num+1))elsebreakfi
done

最终解决方案

如果有兴趣 可以使用这个脚本

#!/bin/bash
set -x# 从命令行获取项目URL和分支名称
PROJECT_URL=$1
BRANCH_NAME=${2:-master}# 从URL中提取项目名称
PROJECT_NAME=$(basename -s .git $PROJECT_URL)# 新建目录并进入
mkdir $PROJECT_NAME && cd $PROJECT_NAME# 初始化Git仓库
git init# 设置重试次数
RETRY_LIMIT=2000# 开始fetch操作
num=1
while [ $num -le $RETRY_LIMIT ]; dogit fetch $PROJECT_URLif [ $? -ne 0 ]; thenecho "Fetch failed, retrying ($num/$RETRY_LIMIT)..."num=$(($num+1))elseecho "Fetch succeeded."breakfi
done# 如果fetch成功,继续执行后续步骤
if [ $num -le $RETRY_LIMIT ]; then# 切换到FETCH_HEADgit checkout FETCH_HEAD# 添加远程仓库git remote add origin $PROJECT_URL# 拉取指定分支git pull origin $BRANCH_NAME# 检查是否需要再次拉取git checkout $BRANCH_NAMEgit pull
elseecho "Failed to fetch project after $RETRY_LIMIT attempts."
fi

openai生成的代码,,,比我写的好多了😓

使用方式

bash clone_project.sh https://github.com/username/project.git main

后面两个参数分别是项目地址 目标分支

这篇关于github 大项目断点续传的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/973403

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

Spring Boot项目如何使用外部application.yml配置文件启动JAR包

《SpringBoot项目如何使用外部application.yml配置文件启动JAR包》文章介绍了SpringBoot项目通过指定外部application.yml配置文件启动JAR包的方法,包括... 目录Spring Boot项目中使用外部application.yml配置文件启动JAR包一、基本原理

Springboot项目登录校验功能实现

《Springboot项目登录校验功能实现》本文介绍了Web登录校验的重要性,对比了Cookie、Session和JWT三种会话技术,分析其优缺点,并讲解了过滤器与拦截器的统一拦截方案,推荐使用JWT... 目录引言一、登录校验的基本概念二、HTTP协议的无状态性三、会话跟android踪技术1. Cook

springboot项目中集成shiro+jwt完整实例代码

《springboot项目中集成shiro+jwt完整实例代码》本文详细介绍如何在项目中集成Shiro和JWT,实现用户登录校验、token携带及接口权限管理,涉及自定义Realm、ModularRe... 目录简介目的需要的jar集成过程1.配置shiro2.创建自定义Realm2.1 LoginReal