git拉取失败解决方案[git clone][git fetch][error: RPC failed]

问题描述, git clone 拉取远程项目失败: 

新手上github,如果用git clone <项目地址> 命令拉取开源项目, 经常会遭遇失败问题

error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)
error: 2959 bytes of body are still expecte

fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output

问题解析, 网络不行:

        这通常意味着在数据传输过程中发生了意外断开。这个问题可能由多种原因引起,包括网络问题、服务器问题或Git配置问题。因为众所周知的原因, 这个问题在本地遭遇很多。

三次尝试, 解决方案:

        (1) 增加Git的HTTP缓冲区大小:可以尝试增加Git操作时的缓冲区大小,这可以通过以下命令完成:

        git config --global http.postBuffer 524288000

        (2) 增加Git的网络超时设置:可以通过调整Git的网络超时设置来给予更长的时间来完成数据传输:

        git config --global http.lowSpeedLimit 0
        git config --global http.lowSpeedTime 999999

尝试后问题没解决, 继续的方案:

        (3) 使用浅克隆:如果不需要完整的项目历史,可以执行浅克隆以减少下载的数据量:

        git clone --depth 1 https://github.com/username/repository.git

尝试成功. 

答案解析, 浅克隆:

  • git clone:这是 Git 用来克隆远程仓库到本地的命令。

  • --depth 1:这是一个选项,用于指定克隆时的深度。这里设置为 1,意味着只克隆最新的一次提交历史。这通常被称为浅克隆(shallow clone)。

  • 浅克隆优点

    • 速度:浅克隆可以加快克隆速度,因为你不需要下载整个项目的历史记录。

    • 空间:减少磁盘空间的使用,因为不包括完整的提交历史。

    • 便利性:如果你只需要最新版本的代码,这是一个快速获取代码的方式。

  • 缺点:

    • 历史记录:没有完整的提交历史,这对于需要查看项目历史或进行某些类型的历史分析是不足的。

    • 分支和标签:浅克隆默认不包括分支和标签信息,除非你特别指定。

    • 无法推送:如果你是想为项目做贡献,浅克隆的仓库不能直接推送到远程仓库,因为缺少完整的历史记录。

延伸, 克隆完整仓库 :

        如果你已经克隆了浅仓库并想要转换为完整仓库,可以使用以下命令:

        cd <your repository>
        git fetch --unshallow

        通过两次拉取的方式最终完整可以拉到了整个项目.

延伸, 能否使用

延伸, 能否使用 --depth 2 或更多

        可以使用 --depth 2 或更高的数字来指定更深的克隆。这将克隆更多的提交历史,但不会是完整的历史记录。例如:

  • --depth 2:这将克隆最新的两次提交。
    --depth 5:这将克隆最新的五次提交。

        使用更大的深度可以提供更多的历史记录,这在需要查看或回溯到较近的特定提交时很有用,但又不需要完整的历史记录。

        选择克隆的深度取决于你的需求:

  • 如果你只需要最新的代码,--depth 1 是合适的。
    如果你需要查看最近的几次提交或进行一些基于最近提交的比较,可以选择更高的深度。
    如果你需要完整的历史记录,不要使用 --depth 选项,直接使用 git clone 命令。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值