当前位置: 首页 > web >正文

Git LFS 安装和使用

Git LFS简介

Git Large File Storage (Git LFS) 是 Git 的一个扩展,用于更有效地处理大型文件。它通过用指针替换大文件来工作,实际文件内容存储在远程服务器上。

Git LFS解决的痛点

处理大文件(如二进制文件、视频、音频、数据集等)
频繁修改大文件会导致仓库体积快速增长
克隆和拉取操作变慢
Git LFS 解决了这些问题,使 Git 更适合管理大型文件。

安装 Git LFS

Windows

下载安装程序:https://git-lfs.github.com/
运行安装程序

macOS

使用 Homebrew 安装:

brew install git-lfs

Linux

在基于 Debian 的系统上:

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs

安装完成后,运行:

git lfs install

基本使用


1. 跟踪大文件
git lfs track "*.psd"
git lfs track "*.zip"
git lfs track "data/*.bin"

这会创建一个或修改 .gitattributes 文件,其中包含跟踪规则。

2. 查看当前跟踪的文件模式
git lfs track

3. 提交更改
git add .gitattributes
git add large_file.psd
git commit -m "Add design file with LFS"
git push origin main

4. 克隆包含 LFS 文件的仓库
git clone <repository-url>
git lfs pull

高级用法
列出 LFS 文件
git lfs ls-files

检查 LFS 文件状态
git lfs status

迁移现有仓库到 LFS
git lfs migrate import --include="*.psd,*.mp4"
git push --force

设置 LFS 文件锁定(防止多人同时修改)
git lfs lock images/logo.png
git lfs locks
git lfs unlock images/logo.png

注意事项
存储配额:许多 Git 托管服务(如 GitHub、GitLab)对 LFS 存储有限制
性能:虽然 LFS 改进了大文件处理,但频繁更改大文件仍会影响性能
备份:确保 LFS 服务器有适当的备份策略
成本:某些托管服务对 LFS 存储收取额外费用
常见问题
Q: 如何知道哪些文件被 LFS 跟踪?
A: 检查 .gitattributes 文件或运行 git lfs track

Q: 我可以更改已提交文件的 LFS 状态吗?
A: 可以,但需要使用 git lfs migrate 命令,这会重写历史记录

Q: Git LFS 支持哪些 Git 托管服务?
A: GitHub、GitLab、Bitbucket 等主流服务都支持 Git LFS

通过合理使用 Git LFS,您可以更高效地管理项目中的大型文件,保持 Git 仓库的轻量和高效。

http://www.xdnf.cn/news/16757.html

相关文章:

  • 动态规划Day5学习心得
  • 原生C++实现信号与槽机制:原理详解
  • windows环境下MySQL 8.0 修改或重置密码
  • SpringBoot 实现 RAS+AES 自动接口解密
  • 图像处理控件Aspose.Imaging教程:使用 C# 编程将 CMX 转换为 PNG
  • 基于 Rust 和土木工程、设备故障诊断、混凝土养护、GPS追踪、供应链物流跟踪系统、地下水监测等领域的实例
  • Y型M12一分二连接器:高效稳定的数据传输解决方案
  • 涿州周边水系分布三维地图
  • MyBatis Plus Wrapper 详细分析与原理
  • 代码随想录day50图论1
  • [leetcode] 反转字符串中的单词
  • Cockpit管理服务器
  • 在 CentOS 系统上安装 Docker
  • 《超级秘密文件夹》密码遗忘?试用版/正式版找回教程(附界面操作步骤)
  • NAT技术与代理服务
  • web服务器nginx
  • sqLite 数据库 (3):以编程方式使用 sqLite,4 个函数,以及 sqLite 移植,合并编译
  • USB电源原理图学习笔记
  • 相亲小程序聊天与互动系统模块搭建
  • 基于定制开发开源AI智能名片S2B2C商城小程序的B站私域流量引流策略研究
  • 线性回归原理与进阶
  • Three.js实现银河螺旋星云粒子特效——原理、实现
  • 在 Cloudflare 平台上完整部署 GitHub 项目 MoonTV 实现免费追剧流程
  • 广泛分布于内侧内嗅皮层全层的速度细胞(speed cells)对NLP中的深层语义分析的积极影响和启示
  • 基于springboot/java/VUE的旅游管理系统/旅游网站的设计与实现
  • 枚举中间位置高级篇
  • UE5 打包Windows平台时无法找到SDK的解决方法
  • 远程Qt Creator中文输入解决方案
  • Flex布局面试常考的场景题目
  • python中的 @dataclass