您的位置:首页 > 汽车 > 时评 > html如何设置背景图片_乐陵网站开发_网络营销类型_关键词分为哪几类

html如何设置背景图片_乐陵网站开发_网络营销类型_关键词分为哪几类

2025/4/24 18:11:23 来源:https://blog.csdn.net/weixin_41004518/article/details/147334600  浏览:    关键词:html如何设置背景图片_乐陵网站开发_网络营销类型_关键词分为哪几类
html如何设置背景图片_乐陵网站开发_网络营销类型_关键词分为哪几类

最近在学习 Git LFS,把一些零散的笔记整理成一篇博文,记录我的学习思路与心路历程。以下内容均为个人理解总结,部分尚未在生产项目中验证,仅供回顾与参考。


🔍 Git LFS 是什么?原理是什么?

刚接触 Git 时,就听说它“不擅长管理大文件”,尤其是模型文件、音视频资源、打包产物等动辄几百 MB 或 GB 的二进制文件。Git LFS(Large File Storage)就是为了解决这类问题而诞生的扩展组件。

✅ 本质

Git LFS 不是对 Git 本体的修改,而是通过引入一个“指针文件”的概念,将 Git 的版本控制与大文件的实际存储解耦。Git 只记录一份几十字节的指针,大文件内容由 Git LFS 存储服务托管(可为 GitHub、GitLab、阿里 OSS 或自建服务)。

📄 指针文件示例:

version https://git-lfs.github.com/spec/v1
oid sha256:<hash>
size <bytes>

每次 git commit 时,Git 只记录这段简短的指针信息,而大文件通过 LFS 上传至后端存储。

🔁 Git 工作流对比

功能普通 GitGit LFS
大文件存储方式存入 .git/objects存储指针,实际文件走 LFS
历史版本管理每次修改保留完整副本指针管理版本,大文件共用
clone 时下载内容全历史版本默认仅当前分支所需内容

🎯 Git LFS 能解决哪些痛点?

在学习中我总结了几个关键优势:

1. 突破平台文件大小限制

GitHub / GitLab 对单个文件通常有 100MB 或 200MB 限制,Git LFS 可以绕开该限制,透明地上传大文件。

2. 解决仓库膨胀与冗余

  • 普通 Git:200MB 文件改动 10 次,仓库增至 2GB;
  • Git LFS:指针 + 共享文件体,clone 默认只拉最新版本,仓库更轻量。

3. 提升 Git 操作效率

减少 Git 的磁盘 I/O 与对象处理,checkout、clone、切分支等操作更快,体验更流畅。

📌 注意: 如果 Git 仓库和 LFS 服务部署在同一台服务器,磁盘空间占用不会减少,但 Git 本体性能会提升。


🚀 为何 checkin / checkout 会更快?

✅ Checkin(提交):

  • 普通 Git:每次提交大文件都产生完整新副本;
  • Git LFS:仅写入小指针,二进制文件另走通道上传。

✅ Checkout(切换版本):

  • 普通 Git:解压全部历史数据到工作区;
  • Git LFS:恢复指针 + 按需并行下载大文件,仅拉取当前所需内容。

⚙️ 在 Gerrit 中配置 Git LFS

1. 安装 LFS 插件

将官方或社区版本的 lfs.jar 插件放入 Gerrit 的 plugins/ 目录。


2. 修改 etc/gerrit.config

[lfs]plugin = lfs

3. 新建 etc/lfs.config,配置后端存储方式

可选任意一种,测试使用第一种就行了

📁 本地存储(默认)

[storage]backend = fsdirectory = /data/gerrit/lfs-custom #本地路径,可不填,默认/data/lfs

适用于测试环境、小团队或 <500GB 的部署。


☁️ Amazon S3 存储

[storage]backend = s3bucket = gerrit-lfs-bucketregion = us-west-1accessKey = AKIAXXXXXXXXXsecretKey = xxxxxxxxxxxxendpoint = https://s3.us-west-1.amazonaws.com  # 可选

可兼容 MinIO、Ceph 等 S3 接口,适合大文件托管。


🌐 阿里云 OSS(S3 协议)

[storage]backend = s3bucket = gerrit-lfs-ossregion = oss-cn-hangzhouaccessKey = LTAI5tXXXXXXXXXXXsecretKey = xxxxxxxxxxxxxendpoint = https://oss-cn-hangzhou.aliyuncs.com

适配国内企业、支持 CDN 加速和数据生命周期管理。


🔧 自定义 HTTP 存储

[storage]backend = customurl = http://lfs.mycompany.com/api/objectsauthHeader = Authorization: Bearer xxxxxxxx

适用于自研服务或集成 Artifactory 等系统。


🧩 多策略混合存储(高级用法)

[storage "images"]backend = fsdirectory = /data/gerrit/lfs-imagesinclude = **/*.png, **/*.jpg[storage "videos"]backend = s3bucket = gerrit-lfs-videosregion = ap-southeast-1include = **/*.mp4, **/*.mov

图片走本地,视频走云存储,冷热数据分离、灵活控制成本。


4. 启用 All-Projects 中的 LFS 支持

git clone ssh://admin@mygerrit.com:8011/All-Projects
cd All-Projects
git fetch origin refs/meta/config
git checkout FETCH_HEAD
vi lfs.config

编辑配置文件:

[lfs "^.*"]enabled = truemaxObjectSize = 1024m

保存后提交配置:

git add .
git commit -m "Enable LFS for all projects"
git push origin HEAD:refs/meta/config

5. 重启 Gerrit & 验证

  • 重启 Gerrit 服务;
  • Plugins > Installed 中确认 lfs 插件存在;
  • 上传/下载大文件测试是否生效。

👩‍💻 用户端使用流程(学习记录)

1. 上传

确保 Git 版本 ≥ 1.8.2,安装 Git 和 Git LFS:

Ubuntu:

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

CentOS:

yum install epel-release
yum install git
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash
yum install git-lfs

初始化 LFS:

# cd进到仓库后
git lfs install # 初始化 Git LFS 钩子

设置追踪文件类型(根据实际场景修改):

git lfs track "*.iso" # 指定需要使用 LFS 管理的文件类型

查找大文件(>50MB):

find . -size +50M

输出例如:

./gigi.a
./bobo.a

添加跟踪(会自动写入并生成 .gitattributes 文件):

git lfs track "gigi.a"
git lfs track "bobo.a"

.gitattributes 文件加入 Git 仓库:

git add .gitattributes

检查跟踪规则:

git lfs track

查看当前 LFS 文件:

git lfs status

执行常规 Git 操作:

git add .
git commit -m "Add large files via LFS"
git push origin master

如果 gerrit 服务器没有配过 lfs,将出现报错:
fatal: Gerrit Code Review: git-lfs-authenticate: not found: exit status 1

若需推送到指定分支:

git push origin local-branch:remote-branch

💡 Git 不支持推送空目录。


2. 下载

重复前述安装步骤,clone 后执行:

git lfs pull

🔁 Git LFS 与 CI/CD 的结合思考

在 CI/CD 中,如果只 git clone,工作目录中的大文件可能仍是指针文件,导致构建或测试失败。我的学习记录如下:

stages:- buildbuild:script:- git lfs install- git lfs pull         # 拉取当前分支所需的大文件- python run_model.py

✅ 补充说明

  • 缓存优化:缓存 .git/lfs 可避免每次都拉大文件;
  • 带宽/额度控制:公共 LFS 服务可能有限额,自建或对象存储拉取是更稳妥方案。

🧠 总结体会

“大文件管理的关键,不在于强塞进 Git,而是借助专业系统处理。”

  • Git LFS 让 Git 仓库保持轻量,提升团队协作体验;
  • 学习过程中,重点理解其 “指针机制 + 按需下载”
  • 配置方面,平台(如 Gerrit、GitHub、GitLab)差异虽有,但本质思路一致;
  • 在 CI/CD、Docker 等场景也可无缝集成,扩展性强。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com