remote: GitLab: LFS objects are missing(pre-receive hook declined)

Git push 遇到错误:

javascript 复制代码
remote: GitLab: LFS objects are missing. Ensure LFS is properly set up or try a manual "git lfs push --all".
To http://192.168.x.x/xxxxxx.git
 ! [remote rejected] dev -> dev (pre-receive hook declined)
error: failed to push some refs to 'http://192.168.x.x/xxxxxx.git'

根据提示是需要安装:LFS

Git-lfs简介

Git Large File Storage(LFS)是Git的一个扩展,它允许向Git仓库存储和管理大型二进制文件。对于软件开发中使用大型的图像、音频文件等,Git LFS非常有用。

原理:不同于git每次保存diff,对于git来说,如果是模型或者一些设计大文件,改变一点,对于仓库来说会增加很大的体积,不一会就能几个G。对于git lfs来说,在使用git lfs track命令后,git push的时候,git lfs会截取要管理的大文件,并将其传至git lfs的服务器中,从而减小仓库的体积

Git LFS的前提条件

在安装Git LFS之前,需要基于Git已经安装并配置好了SSH密钥连接到GitHub或其他代码仓库。

在Windows上,需要将Git LFS作为一个额外的包安装到Git中。如果使用Windows下的Linux子系统,可以像在Linux中一样直接安装Git LFS。

在Linux上,可以通过软件包管理器(如yum或apt)安装Git LFS。

注意:git lfs 要求 git >= 1.8.2

Windows下使用Git LFS的安装示例

以下演示的是如何在Windows系统上安装和使用Git LFS。

1. 安装Git LFS

下载 Git LFS 最新的 Windows 安装包并安装(下载地址:https://git-lfs.github.com/)。

javascript 复制代码
git lfs install

运行以上命令,如果显示Git LFS initialized说明安装成功,Git LFS 就被添加到了 Git 命令行中。

2. 大文件跟踪

需要将大文件添加到 Git LFS 跟踪列表中,才能对其进行跟踪。在 Git 仓库所在的文件夹中运行以下代码。

javascript 复制代码
git lfs track "*.jar"

"*.jar"代表需要跟踪的文件,类似的后缀名都可以使用。运行此命令将生成一个名为.gitattribute的文件,可以使用cat查看:

javascript 复制代码
cat .gitattributes

您可以使用"-l"选项列出该仓库为哪些扩展名或文件模式启用Git LFS。

3.上传代码

将大文件添加入git仓库,然后和其它添加方式一样

javascript 复制代码
git add model.pb
git commit -m "add model file"
git push origin master

4. 提交代码

当您添加、修改或删除大文件时,Git LFS 将监视这些文件,并自动替换为Git LFS 指示文件。在执行添加、提交和推送操作之前,使用以下命令审核将要提交的大文件清单。

javascript 复制代码
git lfs ls-files
相关推荐
daemon.qiang6 天前
国内虚拟机对接 Freedesktop:Fork xserver、自建 Runner 与提交 MR 实战
linux·ubuntu·centos·gitlab·开源软件
snow@li10 天前
服务器运维:K3S 下 Jenkins ↔ GitLab 的 CI/CD 闭环 / 访问成功
运维·gitlab·jenkins
旧梦星轨12 天前
Git Flow 工作流实践
git·gitee·gitlab·github
旧梦星轨12 天前
Github Flow 与 Gitlab Flow工作流实践解读
gitlab·github
极小狐15 天前
干掉流水线里的长期密钥:用 OIDC 让 CI/CD 与云以临时凭证对接
microsoft·ci/cd·gitlab·devops·ci·cd·oidc
snow@li15 天前
服务器运维:阿里云安装软件gitlab/智能体协助安装/智能体协同运维
运维·gitlab
极小狐16 天前
CI 流水线提速实战:缓存设计与依赖代理的工程实践
缓存·ci/cd·gitlab·devops
DevOps老兵17 天前
AI Infra实战11:模型部署Pipeline——CI/CD自动化
人工智能·ci/cd·ai·自动化·gitlab
极小狐17 天前
从复制粘贴到可复用组件:极狐GitLab CI/CD 组件目录实战
java·ci/cd·gitlab·devops·组件化
极小狐17 天前
用 Flow 编排 Agent 智能体:极狐GitLab Duo 自定义工作流实战
ai·gitlab·agent·devops·flow·duo