git 推送出现 “fatal: The remote end hung up unexpectedly“ 解决方案

2023-05-16

https://blog.csdn.net/qq_41241767/article/details/98181952     git 推送出现 "fatal: The remote end hung up unexpectedly" 解决方案
https://blog.csdn.net/weixin_34221775/article/details/89549235  解决gitlab限制上传大小文件的问题
https://www.oschina.net/translate/getting-started-with-git-lfs-tutorial Git LFS 入门指南
https://blog.csdn.net/jjjjjj123321/article/details/84890893 使用Git LFS上传大文件到GitHub教程,以及可能会遇到的坑(使用了Git LFS却依然传不上超过100M的文件;framework库如何添加等)
 
 

问题:

使用git或者TortosieGit向Gitlab推送大文件时,会卡死或者报错”fatal: The remote end hung up unexpectedly“

解决:

使用git-lfs上传大文件依然失败:

正常使用git lfs上传结果如下:

唯一的有疑问的地方是git lfs ls-files查询没有结果,但文件.gitattributes中有,原因如下: 

修改后,git lfs ls-files查询有结果了,但在push的过程中又遇到Client error... from HTTP 413

这个413错误的意思很明显,就是push的内容过大,需要从两方面解决:

  • 客户端

在克隆/创建版本库生成的 .git目录下面修改生成的config文件增加如下:

[user]
    name = your name
    email = your email
[credential]
    helper = manager-core
[http] 
    postBuffer = 1073741824  # 1G
[filter "lfs"]
    process = git-lfs filter-process
    required = true
    clean = git-lfs clean -- %f
    smudge = git-lfs smudge -- %f
[https]
    postBuffer = 1073741824  # 1G

重新推送即可。

或者设置缓存:

$ git config http.postBuffer 1073741824
$ git config https.postBuffer 1073741824
  • gitlab服务端

调整服务端那边的大小限制,因为gitlab服务端走nginx,那在nginx的配置文件里对client_max_body_size这个字段进行设置,大小要大于你项目的大小

再次push上传,OK

 

git-lfs介绍:

1、使用 LFS : 有效的处理大文件

    LFS 并不能像"变魔术一样"处理所有的大型数据:它需要记录并保存每一个变化。然而,这就 把负担转移给了远程服务器 - 允许本地仓库保持相对的精简
    为了实现这个可能,LFS 耍了一个小把戏:它在本地仓库中并不保留所有的文件版本,而是仅根据需要提供检出版本中必需的文件。
    但这引发了一个有意思的问题:如果这些庞大的文件本身没有出现在你的本地仓库中....改用什么来代替呢? LFS 保存轻量级指针中有真实的文件数据。当你用一个这样的指针去迁出一个修订版时,LFS 会很轻易地找到源文件(不在他上面可能就在服务器上,特殊缓存)然后你下载就行了。
    因此,你最终只会得到你真正想要的文件 - 而不是一些你可能永远都不需要冗余数据。
 
 

2、安装 LFS

    LFS 尚未加入 Git 的核心二进制文件,但是它可以作为扩展使用。这意味着,使用之前我们需要提前安装。
服务端:
    目前并不是所有主机服务器都支持 LFS。 但如果你是 GitLab 用户就不必担心。如果你使用 GitLab.com 或 GitLab CE 或 EE 的中间版本,它们已经支持LFS了! 您的 管理员只需要开启LFS选项
本地机器:
    你本地安装的 Git 也需要支持 LFS。 如果你使用 Tower,一个 Git 桌面客户端,你就不需要额外安装了,因为 Tower 已经非常好地支持 Git 大文件系统。
    如果你使用命令行来运行 Git,可以选择以下方法来安装 LFS:
  • 二进制安装包:最新版本的 binary packages, 支持 Windows,Mac,Linux 以及 FreeBSD
  • Linux:Debian 和 RPM 的软件包可从 PackageCloud 获得。
  • macOS:你可以使用 Homebrew 执行“brew install git-lfs”来安装,也可以使用 MacPorts 执行“port install git-lfs”安装.
  • Windows:你可以使用包管理器 Chocolatey 执行“choco install git-lfs”来安装。
    等你的包管理器完成上述安装后,你还需要执行“ git lfs install”命令:
     
 

3、使用 LFS 追踪文件

     没有特别说明的情况下,LFS 不会处理大文件问题,因此,我们必须明确告诉 LFS 该处理哪些文件
    让我们回到“大 Photoshop 文件”的示例, 我们可以使用“ git lfs track”命令来告诉 LFS 处理“design.psd”文件:
git lfs track "design-resources/design.psd"
     项目根目录下新建了一个新文件 ".gitattributes" (如果已存在,将会被修改), ".gitattributes" 文件记录了我们用 LFS 追踪的所有的文件路径
cat .gitattributes
design-resources/design.psd filter=lfs diff=lfs merge=lfs -text
   在这之后 LFS 会处理这个文件。我们接下来只要像往常那样把这个文件提交到仓库。值得注意的是, ".gitattributes" 文件也需要提交到仓库,操作和提交其他修改文件一样:
git add .gitattributes
git add design-resources/design.psd
git commit -m "Add design file"
git push
 
追踪文件路径:
    添加单一文件如上所示就可以。但是,比如说,如果你想追踪项目里所有后缀名为 indd 的文件呢?放心,你不用手动的添加每个文件。LFS 允许你定义文件路径,就像忽略文件时的用法那样。举个例子,下面的命令会告诉 LFS 追踪所有的 InDesign 文件 — 已经存在的和以后添加的。
git lfs track "*.indd"
    你也可以告诉 LFS 追踪整个文件夹里的所有内容:
git lfs track "design-assets/*"
 
追踪文件概述:
    想知道到底有哪些文件在被 LFS 追踪。你可以简单的看看 .gitattributes文件。然而,它们不是真实的文件,而是包含一些规则和理论的文件:某些文件可能会漏掉,例如由于拼写错误或者过分严格的规则。
    想要查看你当前正在追踪的实际文件的列表,可以使用 git lfs ls-files 命令:
git lfs ls-files
194dcdb603 * design-resources/design.psd
 
 
 
 
 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git 推送出现 “fatal: The remote end hung up unexpectedly“ 解决方案 的相关文章

随机推荐

  • PyQt5编程-鼠标事件

    处理鼠标事件的频率不低于键盘事件 包括按下 松开鼠标按键 xff1b 移动鼠标到特定区域或离开特定区域 xff1b 更改鼠标指针的形状 xff0c 等等 1 按下 松开鼠标按键 按下并释放鼠标按钮时 xff0c 将调用以下方法 xff1a
  • latex 正文设置为双栏,图片如何占两栏

    xff08 1 xff09 插入一栏图片时 xff0c 使用的是 xff1a begin figure end figure 96 xff08 2 xff09 插入双栏图片时 xff0c 需在figure的上标中加入星号 begin fig
  • VIO松耦合和紧耦合对比

    松耦合 xff08 结果级融合 xff09 xff1a 两个独立的运动估计过程中分别处理视觉和惯性测量的信息 xff0c 最终将他们的输出 xff08 位置和姿态 xff09 融合作为结果 紧耦合 xff08 特征级融合 xff09 xff
  • zed2相机运行VINS-mono

    zed2相机标定请参考专栏前面博文 xff01 一 zed2相机运行VINS mono 1 下载VINS mono mkdir p vins ws src cd vins ws src git clone https github com
  • C语言指针笔试题

    1 我们先来看第一段代码和它的输出 span class token keyword int span span class token function main span span class token punctuation spa
  • Gazebo 官网教程学习笔记--Model Editor

    终端打开Gazebo Gui 界面 然后快捷键CTRL 43 M 打开 Model Editor xff0c 或者在edit 下选择model editor 界面如下 1 工具栏 包含用于编辑模型的工具 2 调色板 也称为左面板 有两个选项
  • 《大厂算法面试》小书

    算法面试是大多数小伙伴的弱势 xff0c 但是大厂几乎都会考算法 xff0c 如果在面试过程中不刻意准备一下算法 xff0c 很大概率被挂 其实对于前端和移动端来说 xff0c 算法要求的并不是很高 xff0c 只要把一些常见的算法题刷完
  • ROS通信架构上——Topic和Msg

    Topic 异步通信方式 Node间通过publish subscribe机制通信 相关的命令 xff1a rostopic rostopic list 列出当前所有topicrostopic info topic name 显示某个top
  • Type-C显示器是什么,Type-C显示器的5大优势

    在显示器领域内 xff0c USB Type C接口还处于发展阶段 xff0c 目前已经在新推出的一些高端显示器和旗舰显示器中有配置 USB Type C接口的出现 xff0c 将会形成以显示器为核心的桌面解决方案 xff0c 用户可以把任
  • SLAM综述

    SLAM综述 前言一 概述二 Lidar SLAM激光雷达传感器激光雷达SLAM系统 xff08 Lidar SLAM System xff09 2D SLAM3D SLAM深度学习与激光雷达Feature amp Detection xf
  • VisionPro使用 C# 开发

    VisionPro 常用控件的说明 工具设置窗体 CogPMAlignEditV2 模版匹配设置窗体控件 CogPMAlignEditV2 Subject 工具关联对象 如 xff1a CogPMAlignEditV2 Subject 61
  • rosdep update 失败及解决办法

    一 问题 reading in sources list data from etc ros rosdep sources list d Hit https raw githubusercontent com ros rosdistro m
  • 在STM32上运行ROS节点——rosserial&stm32开发及调试方法

    近期接手了一些ROS机器人项目 xff0c 这里将开发中遇到的问题和解决方法记录下来 stm32强大的外设资源为机器人底层设备控制带来了极大的便利 xff0c 本文简述借助rosserial项目在stm32中运行ROS节点的方法 基本原理
  • 动态存储区、静态存储区、堆和栈的区别

    C c 43 43 程序经过编译连接后形成的二进制映像文件 xff0c 这文件包含 xff1a 栈 xff0c 堆 xff0c 数据段 xff08 只读数据段 xff0c 已经初始化读写数据段 xff0c 未初始化数据段即BBS xff09
  • kubemini-基础使用

    起始 minikube 是一个本地的 k8s 专注于为 k8s 创建一个简单的学习和开发环境 你只需要一个 Docker 或者类似兼容的 容器 xff0c 或者一个虚拟机环境 xff0c k8s 只需要一个单独的命令 xff1a minik
  • 详解信号量和互斥锁之间的区别和联系

    一 xff1a 信号量与互斥锁之间的区别 xff1a 1 xff1a 互斥量用于线程的互斥 xff0c 信号线用于线程的同步 这是互斥量和信号量的根本区别 xff0c 也就是互斥和同步之间的区别 2 xff1a 互斥量值只能为0 1 xff
  • python基础学习(十二)——python中代码的执行顺序以及if __name__ ==‘__main__‘作用和原理

    xff08 1 xff09 代码执行顺序 python程序是顺序执行的 xff0c Python中首先执行最先出现的非函数定义和非类定义的没有缩进的代码 python程序执行时 按照自上而下的顺序 xff1a 首先执行没有缩进的代码 xff
  • c学习--不同c文件中的同名全局变量及同名函数53

    如果在不同的c文件中定义了同名的全局变量 xff0c 则它们会占用相同的内存空间 xff0c 而且编译链接时不会报错 xff01 这可以参考全局变量的内存初始化顺序 对于局部变量而言 xff0c 内存分配的顺序和代码的顺序是一样的 全局变量
  • 基于STM32的FreeRTOS学习之任务基础知识(六)

    记录一下 xff0c 方便以后翻阅 RTOS系统的核心是任务管理 xff0c 初学RTOS系统必须先掌握任务的创建 删除 挂起和恢复等操作 1 什么是多任务系统 玩裸机一般都是在main函数里用while 1 做一个死循环完成所有处理 xf
  • git 推送出现 “fatal: The remote end hung up unexpectedly“ 解决方案

    https blog csdn net qq 41241767 article details 98181952 git 推送出现 34 fatal The remote end hung up unexpectedly 34 解决方案 h