0


git提交大文件报错解决方案

git提交大文件报错解决方案

我最近帮朋友扒网站时,因为很多视频都在保存在本地,上传git仓库时报错了,看了下错误信息,大概意思是文件太大了,超过git的限制了,这里简单记录一下解决方法。

1、http.postBuffer

http.postBuffer默认单位为B,所以500MB=10241024500
注意:我这里设置的是500MB(大家可以根据自己的需要设置)。

    # 全局配置
    git config --global http.postBuffer 524288000
     
    或
     
    # 当前仓库配置
    git config http.postBuffer 524288000

查看 http.postBuffer数值是否设置成功:

    # 查看当前的Git配置
    git config --list

或者直接找

.git

文件里的

config

文件手动写入并保存
在这里插入图片描述

注: 但是可能有些人设置不会生效,具体咋回事我也不清楚

但是呢, http.postBuffer不好使也别慌

不要慌不要慌,太阳下山有月光,泡面吃完还有汤


2、Git LFS

Git LFS是基于Git的

.gitattributs

配置文件的特性,用 smudge过滤器基于 指针文件寻找大文件内容, 用 clean过滤器在对大文件改动时,创建指针文件的新版本。同时还用 pre-push钩子将大文件上传到Git LFS服务器, 即在 git-push时, 如果提交中包含被LFS跟踪的大文件,pre-push钩子会检测到,并执行上传Git LFS服务器的动作。

安装及配置git lfs

我用的windows系统就直接开搞了,其他系统的去看官方吧GIT LFS

1.在Git仓库中为仓库设置相关配置

    git lfs install

这个命令会自动改变Git配置文件 .gitconfig,而且是全局性质的,会自动在配置文件中增加如下配置:
[filter “lfs”]
clean = git-lfs clean – %f
smudge = git-lfs smudge – %f
process = git-lfs filter-process
required = true

2.选择要用LFS追踪的文件

    git lfs track "*.mp4"
    
    # 或者具体到某个文件
    git lfs track "1.png"
    git lfs track "demo.lfs"

这个命令会更改仓库中的 .gitattributes配置文件(如果之前不存在这个文件,则会自动新建):
查看如下:
$ cat .gitattributes
*.svg filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text

3.查看正在被LFS追踪的文件

// 查看现有的文件追踪模式(查看使用)
    git lfs track
    
    // 显示当前跟踪的文件列表(查看使用)
    git lfs ls-files

4.放弃追踪某个文件

    git lfs untrack "1.png"

5.配置完需要追踪的文件后要先提交到git仓库

    git add .gitattributes
    git commit -m "add .gitattributes"

使用git-lfs会生成.gitattributes文件,这个文件需要被上传到远程仓库
在上传.gitattributes文件之前不要commit被跟踪的大文件到git,会导致大文件上传失败。

6.取消LFS的全局配置

    git lfs uninstall

也可以直接打开.gitattributes修改里面的内容。

    #允许提交.mp4为后缀的大型文件
    *.mp4 filter=lfs diff=lfs merge=lfs -text

**如果一个仓库中包含LFS内容,但是在推送时不想推送这类文件,只要加上

--no-verify

选项就行**

// --no-verify选项告诉 git push完全跳过 pre-push钩子。
    git push --no-verify

被LFS管理的文件,本地仓库中保存的内容实际上是指针文件,其格式类似于下面这样:

    git show HEAD:2.svg
    
    // version表示LFS的版本// oid表示文件对象的唯一hash值// size表示文件的大小
    version https://git-lfs.github.com/spec/v1
    oid sha256:158213f90f8b27012034c6f58db63e1861b12aa122d98910de311bf1cb1e50a0
    size 14651

注: LFS是面对企业级的收费项目,若你得团队有钱那就买,肯定是花钱越多空间越大

如果是自己用,那就找一些免费的git仓库我这里用的CODING它内置lfs,好像花钱可以扩充空间,没咋注意,反正能玩


本文转载自: https://blog.csdn.net/weixin_43106777/article/details/125946939
版权归原作者 一只小白菜~ 所有, 如有侵权,请联系我们删除。

“git提交大文件报错解决方案”的评论:

还没有评论