前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git LFS 好用的大文件储存工具?

Git LFS 好用的大文件储存工具?

作者头像
Tinywan
发布2023-09-28 17:41:55
3820
发布2023-09-28 17:41:55
举报
文章被收录于专栏:开源技术小栈开源技术小栈

需求

最新使用通义千问-14B-对话-Demo 模型,由于代码比较大,所以需要使用git lfs克隆项目空间

代码语言:javascript
复制
git lfs install
git clone http://oauth2:@www.modelscope.cn/studios/Tinywan/wiot.git

简介

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

Windows下使用Git LFS的安装示例

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

1. 安装Git LFS

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

代码语言:javascript
复制
git lfs install

运行以上命令,Git LFS 就被添加到了 Git 命令行中。

2. 大文件跟踪

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

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

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

代码语言:javascript
复制
cat .gitattributes

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

3. 提交代码

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

代码语言:javascript
复制
git lfs ls-files

Linux下使用Git LFS的安装示例

以下演示的是如何在Linux上安装并使用Git LFS。

1. 安装Git LFS

在Linux系统中使用以下命令安装Git LFS。

代码语言:javascript
复制
sudo apt install git-lfs

2. 大文件跟踪

使用以下命令来跟踪大文件。

代码语言:javascript
复制
git lfs track "*.zip"

3. 提交代码

在提交大文件之前,使用以下命令来审核将要提交的大文件清单。

代码语言:javascript
复制
git lfs ls-files

Git LFS存储如何工作?

Git大文件存储使用指针来引用文件,而不是将实际文件或二进制大对象(blobs,一种将二进制文件存储为一个实体的数据类型) 存储在Git存储库本身中。

因此,大文件/二进制大对象不会被直接写入Git存储库,而是被写入一个指针文件。文件/二进制大对象本身会被写入一个单独的服务器,称为LFS存储库。通过这种方式,可以对大文件进行版本控制,以及管理二进制大对象,同时释放Git存储库的空间。

应该使用Git LFS吗?

如果您需要在Git中管理大文件或二进制文件,那么可以考虑使用Git LFS。(但是,如果您的团队中有美术人员和设计师,需要对他们的大型二进制艺术文件进行版本控制,那么您可能不希望使用Git LFS。关于这一点,我们将在下一节中详细讨论。)

使用Git LFS或其他替代方案的原因是,Git是一种分布式版本控制系统,每个开发人员在本地计算机上都有完整的变更历史记录。对大型二进制文件进行更改会导致什么?每次更改文件并提交后,Git 存储库的规模都会根据文件的大小而增加。这意味着获取文件会花费很长时间,并且很难对这些二进制文件进行版本控制和合并。

因此,每当文件增长时,Git存储库也会增长,这会导致Git用户在检出和克隆存储库时出现性能下降的情况。

Git LFS是为解决这些问题而创建的,但它自身也存在一些问题和限制。

Git LFS的问题

Git LFS虽然有效,但许多使用它的团队发现其管理起来较为困难。以下是考虑寻找Git LFS替代方案的一些原因:

设置Git LFS非常耗时

要使用Git LFS,每个用户都必须在其服务器和工作站上安装它。这样做很耗时,对管理员来说也是一种负担。而且一旦安装完成,对Git LFS的可见性和控制性都较低。

维护Git LFS需要额外的步骤

维护Git LFS需要额外的步骤,因为您必须为每个Git存储库(即每个Git项目)设置Git LFS。这意味着每个存储库都需要安装Git LFS,您还需要告诉LFS要跟踪的文件类型,然后将跟踪信息添加到存储库中,以便在提交该类型的文件时,它将被放置在LFS存储库中。对于还不太了解Git的用户来说,这颇具挑战性。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-09-27 18:13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源技术小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求
  • 简介
  • 安装
    • 前提条件
      • Windows下使用Git LFS的安装示例
        • 1. 安装Git LFS
        • 2. 大文件跟踪
        • 3. 提交代码
      • Linux下使用Git LFS的安装示例
        • 1. 安装Git LFS
        • 2. 大文件跟踪
        • 3. 提交代码
    • Git LFS存储如何工作?
    • 应该使用Git LFS吗?
    • Git LFS的问题
    • 设置Git LFS非常耗时
    • 维护Git LFS需要额外的步骤
    相关产品与服务
    对象存储
    对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档