github 大项目断点续传

news/2024/9/23 6:24:00/

背景

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

解决办法

1 总体流程

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

  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

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


http://www.ppmy.cn/news/1458884.html

相关文章

欧盟MDR法规对医疗器械网络安全都有哪些要求?

MDR,欧盟医疗器械法规(Medical Device REGULATION (EU) 2017/745,简称“MDR”),当医疗器械办理欧盟CE认证时,需满足新法规 MDR (EU) 2017/745要求。 M DR符合性评估 医械网络安全咨询与相关文件出具&#x…

Elasticsearch 索引、类型、文档、分片与副本等核心概念介绍

🐇明明跟你说过:个人主页 🏅个人专栏:《洞察之眼:ELK监控与可视化》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、Elasticsearch简介 2、分布式搜索引擎的工作原理…

Redis + OpenResty 多级缓存

多级缓存 初识 OpenResty OpenResty - 开源官方站 基于 Nginx的高性能 Web 平台,用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。 具备Nginx的完整功能基于Lua语言进行扩展,集成了大量精良的 Lua 库、第三方模块允…

Linux——DNS域名解析服务的部署及优化方案

1. (问答题) 1.配置2台服务器要求如下: a)服务器1: 主机名:dns-master.timinglee.org [rootserver100 ~]# hostnamectl hostname dns-master.timinglee.org [rootserver100 ~]# hostname dns-master.timinglee.org ip地址&#…

FPGA+HDMI转换方案,用于网络直播切换直播画面,客户应用:直播,自媒体

FPGAHDMI转换方案,用于网络直播切换直播画面 客户应用:直播,自媒体 主要功能: 1.支持多路HDMI高清输入/输出 2.支持各路输入输出灵活切换 3.支持USB接口 4.支持网口 5.支持音频输出接口 6.支持serders

Word表格标题间距大修改环绕为无仍无法解决

1.选中表格,右键选择【表格属性】 2.选择【环绕】,此时【定位】可以被启用(如下),点击进入窗口 3.修改参数和下面一模一样 注意:【垂直】那里的修改方式是先选段落,后在位置输入0

OSError: image file is truncated (36 bytes not processed)解决方案

错误原因: 图像文件被损坏 解决方案: 代码开头添加如下两行代码: from PIL import ImageFile ImageFile.LOAD_TRUNCATED_IMAGES True

Leetcode 116:填充每一个节点的下一个右侧节点指针

给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到…