0


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/bashset-xnum=1while[$num-le2000];dogit fetch https://github.com/xxx.git
   if[$?-ne0];thennum=$(($num+1))elsebreakfidone

最终解决方案

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

#!/bin/bashset-x# 从命令行获取项目URL和分支名称PROJECT_URL=$1BRANCH_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=1while[$num-le$RETRY_LIMIT];dogit fetch $PROJECT_URLif[$?-ne0];thenecho"Fetch failed, retrying ($num/$RETRY_LIMIT)..."num=$(($num+1))elseecho"Fetch succeeded."breakfidone# 如果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

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


本文转载自: https://blog.csdn.net/me1171115772/article/details/138603707
版权归原作者 v俊逸 所有, 如有侵权,请联系我们删除。

“github 大项目断点续传”的评论:

还没有评论