Git-repo--mirror下载镜像仓库后部分仓库无法找到分支,解决了分支问题后还是无法通过镜像正常clone代码应该如何解决

一、使用--mirror下载镜像仓库后有部分仓库无法找到分支导致代码下载失败1.1、问题排查

        1.1.1确认远程仓库中确实包含此分支

                git ls-remote --heads <url>

        1.1.2直接克隆远程分支到本地,确认权限

                git clone -b branch <url>

        1.1.3尝试切换repo版本,排除repo问题

        1.1.4核对xml文件,排除depth=1浅克隆问题

                我遇到的场景是在使用以上4个方式确认完毕后还是无法解决问题

1.2、解决方案

在镜像仓库执行以下命令:

repo forall -c "pwd;git fetch source --depth=1" 

  • repo forall:遍历所有的 Git 仓库,并在每个仓库中执行后面指定的命令。
  • -c:后面跟的是要在每个仓库中执行的命令字符串。
  • "pwd;git fetch source --depth=1":首先使用 pwd 命令打印当前的工作目录路径,然后使用 git fetch 命令从指定的远程仓库 source 拉取最新的一个提交(深度为 1)。

执行完毕后再次尝试从镜像仓库检出代码成功

二、在镜像仓库git branch能查看到分支的前提下,拉取镜像仓库代码报错

问题原因:仓库可能不是depth=1的仓库,可能第一次就没有下载完整。

解决方案:单独针对这个仓库执行一次git fetch source --unshallow

git fetch source --unshallow 是一个 Git 命令,用于将一个浅克隆(shallow clone)的仓库转换为完整克隆。浅克隆是指只克隆仓库的部分历史记录,而不是完整的历史记录。当你使用 git clone 命令进行克隆时,默认情况下会进行完整的克隆,即克隆整个仓库的历史记录。但是,有时候为了节省时间和带宽,你可能会选择进行浅克隆,只克隆最近的几个提交。然而,浅克隆的仓库在某些操作上是有限制的,比如无法进行一些历史相关的操作,如查看旧版本、切换分支等。如果你需要进行这些操作,就需要将浅克隆的仓库转换为完整的克隆。这时就可以使用 git fetch --unshallow 命令。它会从远程仓库获取缺失的历史记录,将浅克隆转换为完整的克隆

  • 14
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值