debian12部署Gitea服务之二——部署git-lfs

这篇具有很好参考价值的文章主要介绍了debian12部署Gitea服务之二——部署git-lfs。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Debian安装gitlfs:
先更新下软件包版本
sudo apt update
安装
sudo apt install git-lfs
验证是否安装成功
git lfs version
cd到Gitea仓库目录下
cd /mnt/HuHDD/Git/Gitea/Repo/hu/testrepo.git
执行lfs的初始化命令
git lfs install

客户机Windows端在官网下载并安装Git-Lfs
再本地Git仓库工作空间下打开Git bash
执行lfs初始化命令
git lfs install

初始化之后发现工作空间如下内容发生了变化:

debain 安装gitea,gitea,git,gitlfs

config文件增加了如下内容:

[lfs]
    repositoryformatversion = 0

跟踪大文件:

现在,你可以选择需要用Git LFS跟踪大文件,并将它们加入到Git LFS管理中。例如,如果你要跟踪所有.mp4 文件,可以运行:

git lfs track "*.mp4"

执行了上述命令之后,仓库根目录下会出现这个文件:

debain 安装gitea,gitea,git,gitlfs

打开这个文件,发现内容如下,实际就是配置了哪些文件被lfs追踪:

*.mp4 filter=lfs diff=lfs merge=lfs -text

它告诉 Git 如何处理 .mp4 文件。具体来说:

  • *.mp4:这表示这个规则适用于所有扩展名为 .mp4 的文件。
  • filter=lfs:这表示当 Git 检出和提交这些文件时,应该使用 Git LFS 过滤器。这意味着这些文件的内容将由 Git LFS 管理,而不是由 Git 本身管理。
  • diff=lfsmerge=lfs:这表示当 Git 对这些文件进行差异比较和合并时,应该使用 Git LFS 的差异比较和合并策略。这通常意味着 Git 将不会尝试对这些文件的内容进行差异比较和合并,因为这些文件通常是二进制文件,不能像文本文件那样进行差异比较和合并。
  • -text:这表示 Git 不应该尝试将这些文件的内容视为文本。这可以防止 Git 在检出文件时自动转换行结束符。

另外会发现hooks钩子目录下会部署以下文件,lfs的大文件管理就是基于这些钩子实现的,有兴趣的可以深入研究一下:

debain 安装gitea,gitea,git,gitlfs

测试提交并推送更改:

git add .gitattributes
git add your_large_files.mp4
git commit -m "Add large files"
git push origin master
我这里上传了一个一百多M的mp4文件(手头没有mp4文件,就拿一个压缩包改了后缀名冒名顶替了一下,手动斜眼)。提交并推送之后,我们远程到Gitea服务器上去看一下,首先看下Gitea代码仓库的大小:

debain 安装gitea,gitea,git,gitlfs

才272k,显然,咱们的大文件果然不会被传入到代码仓库中,代码仓库中只会存储对于大文件夹的指针的引用。

那么咱们就去看下之前部署Gitea时所指定的git-lfs的目录下去看看。

debain 安装gitea,gitea,git,gitlfs

大小127M,果然是在这里,再看一下结构:

debain 安装gitea,gitea,git,gitlfs

可以看出文件是按照上面这样一种结构来存储的,使用文件的哈希值作为路径名称,将代码仓库中的引用指向这里,从而实现了大文件与代码仓库中的小文件分开存储的需求。 

如果进一步验证的话,可以使用下面的命令:

使用仓库最后一次的commit对象,一直追溯到一个blob对象,指针开头为e53f,具体细节不再赘述,使用下面命令来查看该blob对象的内容:
git cat-file -p e53f
会看见这个blob的内容如下:
version https://git-lfs.github.com/spec/v1
oid sha256:74add27b1c9d3c39883fee6d130588a3f88959a578a7563b7a519c6e1a864a5d
size 132455501

解读一下:
version https://git-lfs.github.com/spec/v1:这是Git LFS规范的版本信息。
oid sha256:74add27b1c9d3c39883fee6d130588a3f88959a578a7563b7a519c6e1a864a5d:这是文件的对象标识符(OID),它是文件内容的SHA-256哈希值。
size 132455501:这是文件的大小,单位是字节。
这个指针文件实际上是一个文本文件,它指向存储在服务器上的大文件。当您克隆或拉取仓库时,Git LFS会下载这些大文件,并用它们替换本地的指针文件。这样,大文件就不会存储在Git仓库中,从而保持了仓库的轻量。

注:如果不想每次进行git push时输入密钥的密码,可以git bash中执行以下命令:

eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa
  1. eval "$(ssh-agent -s)":这个命令会启动 SSH 代理。SSH 代理是一个在后台运行的程序,它可以保存你的 SSH 密钥,并在需要时自动提供密钥。eval 命令会执行 ssh-agent -s 命令的输出,这样就可以设置 SSH 代理的环境变量。

  2. ssh-add ~/.ssh/ssh.key:这个命令会将你的 SSH 密钥添加到 SSH 代理中。这样,当你需要使用 SSH 密钥时,SSH 代理可以自动提供密钥,你就不需要每次都手动输入密钥的密码。请注意,你需要将 ssh.key 替换为你的密钥的实际名称。当然,你也可以使用我上面的*号形式的模糊匹配。

下载大文件:

其他开发者在克隆仓库时,可以通过运行以下命令来下载大文件:

git lfs pull文章来源地址https://www.toymoban.com/news/detail-837274.html

注意事项:

  • 请确保所有参与的开发者都安装了Git LFS。
  • 在使用Git LFS时,确保不要将大文件直接添加到Git仓库,而是通过Git LFS进行跟踪和管理。
  • 如果你的Gitea服务器是通过HTTPS进行访问的,你可能需要在服务器上配置Git LFS的HTTPS认证。

到了这里,关于debian12部署Gitea服务之二——部署git-lfs的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 安卓手机搭建Gitea-自己的git服务器

    官网的介绍是: Gitea的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好的自建 Git 服务。我们采用Go作为后端语言,这使我们只要生成一个可执行程序即可。并且他还支持跨平台,支持 Linux, macOS 和 Windows 以及各种架构,除了x86,amd64,还包括 ARM 和 PowerPC

    2023年04月24日
    浏览(69)
  • debian11 debian12 安装图解 服务器+桌面

    debian11、debian12 安装详细图解(实体机) debian是linux几大分支之一,ubuntu也是debian的分支 debian不分服务器、个人桌面版本。 debian12已经发布,和11的安装方法完全一致,截至到更新,12.1版本已经发布。(2023.8.21更新) 官网:debian官网 现在从官网下载,默认就是12.1的网络安装

    2024年02月15日
    浏览(53)
  • git轻量级服务器gogs、gitea,非轻量级gitbucket

    本文来源:git轻量级服务器gogs、gitea,非轻量级gitbucket, 或 gitcode/gogs,gitea.md 结论: gogs、gitea很相似 确实轻, gitbucket基于java 不轻, 这三者都不支持组织树(嵌套组织 nested group) 只能一层组织。 个人用,基于gogs、gitea,两层结构树 简易办法: 把用户当成第一层节点、该用户的

    2024年02月07日
    浏览(79)
  • 搭建自己的git服务器--win10系统使用Gitea快速搭建git-server

    2023-03-28 本文简单介绍了使用gitea开源软件搭建自己git服务器的过程; 本文记录的在win10系统上快速安装gitea,实现了git服务端的搭建。 搭建自己的git仓库服务端,搭建到云主机,连接方便,但大文件受限于网速。 搭建到局域网,网速快。各有优势,多试多玩,总有收获。 安

    2024年02月13日
    浏览(84)
  • 在Debian上可以部署哪些有用的服务?

    2024年4月20日,周六下午 在 Debian 上可以部署许多有用的服务,以满足各种需求。 以下是一些常见的有用服务: Web 服务器 :如 Apache、Nginx、Lighttpd 等,用于托管网站和 Web 应用。 数据库服务器 :如 MySQL、PostgreSQL、MariaDB 等,用于存储和管理数据。 文件服务器 :如 Samba、N

    2024年04月22日
    浏览(38)
  • Git 提交分支合并请求(Gitea)

    在 feature分支 (特性分支)完成开发后,需要提交申请,将 feature分支 合并到 develop分支 (开发分支)。 当项目负责人通过请求后,本次开发结束;如项目负责人拒绝请求,则需要按要求修改代后重新提交。 注:本示例使用的 Git服务器 为 Gitea。 创建 合并请求 选择合并的

    2024年02月12日
    浏览(51)
  • 使用Gitea搭建自己的git远程仓库

    为什么需要自建仓库 原因只有一个:折腾。其实国内的码云加上github已经足够用了。 官方原话 Gitea 的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好的自建 Git 服务。我们采用 Go 作为后端语言,这使我们只要生成一个可执行程序即可。 并且他还支持跨平

    2024年02月03日
    浏览(45)
  • 轻松搭建 Gitea:完成自己的 Git 之旅

    最近很多人问我买了服务器可以做什么,那么接下来的系列文章我们会详细讲一讲有了服务器干什么。 这一期带来的是使用 雨云 的云服务器搭建 Gitea —— 一个开源的 Git 服务器。 本期使用的环境如下: Alpine Linux 服务器一台 (没有可以看文末领取福利) 使用 Alpine Linux 的

    2024年01月18日
    浏览(40)
  • 【debian 12】:debian系统切换中文界面

    目录 项目场景 基础参数 原因分析 解决方案 1.ctrl+alt+T 打开终端 2.查询当前语言环境(我的已经设置成了中文  zh_CN.UTF-8) 3.打开语言配置界面 4.最后一步:重启 不要放弃任何一个机会!         这两天拿到了一个  sipeed  的   LicheePi 4A开发板 。 开发板介绍:        

    2024年02月07日
    浏览(45)
  • Linux 一键部署二进制Gitea

      Gitea 是一个轻量级的 DevOps 平台软件。从开发计划到产品成型的整个软件生命周期,他都能够高效而轻松的帮助团队和开发者。包括 Git 托管、代码审查、团队协作、软件包注册和 CI/CD。它与 GitHub、Bitbucket 和 GitLab 等比较类似。 Gitea 最初是从 Gogs 分支而来,几乎所有代码

    2024年02月03日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包