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

(009) SourceTree: 使用Git LFS 增加文件锁定和解锁的功能

文章目录

  • 分享
  • 软件要求(window环境)
  • Git LFS 安装
  • 关联 Git LFS 和 SourceTree
  • 【lock】和【unlock】的操作
  • 后台查看LFS文件状态
  • 防老六不安装LFS,直接提交

分享

通过网盘分享的文件:SourceTree+Git LFS.zip

提取码: cyr6

软件要求(window环境)

  1. 【sourcetree 3.0.0+ 下载】。
  2. 【Git LFS 3.7.1 下载】。

Git LFS 安装

  1. 安装提示:

其他的可以选择默认安装选项。

  1. 安装完,打开 【sourcetree】,打开命令模式,执行:git lfs install

  2. 项目仓库下,添加配置文件.gitattributes

    # 所有的 Excel 文件使用 LFS 存储并开启本地只读锁定 (lockable) *.xlsx filter=lfs diff=lfs merge=lfs -text lockable *.xls filter=lfs diff=lfs merge=lfs -text lockable *.xlsm filter=lfs diff=lfs merge=lfs -text lockable *.xlsb filter=lfs diff=lfs merge=lfs -text lockable

关联 Git LFS 和 SourceTree

  1. 双击【allow_lfs_script.bat】允许系统执行 lfs 的脚本。
  2. 将 【lfs_tool.bat】脚本放在一个不会误删的地方,路径名不要有中文
  3. 打开【sourcetree】,顶部菜单【工具-选项】,设置自定义操作的命令:
  4. 点击添加,分别添加【LFS Lock】和 【LFS Unlock】钩子:
  • Lock钩子参数: lock $REPO $FILE your_name

  • UnLock参数:unlock $REPO $FILE your_name

【lock】和【unlock】的操作

  1. 方法一:对于有提交记录的文件,右键选择:

  2. 方法二复制要锁定的文件路径,打开shell,执行git lfs lock|unlock file_path

  3. 方法三: 显示所有的项目文件,在项目文件中选择:

后台查看LFS文件状态

  1. 登录 gitea 或 gitlab 文件后台:

防老六不安装LFS,直接提交

LFS 最大风险不是用错,而是“别人不用”

  1. 放到仓库 hooks 目录:

    /data/git/repositories/用户/仓库.git/hooks/pre-receive
  2. 服务器直接安装 hook 脚本:比如 excel 必须走 lfs :

    #!/bin/bash# ===== 配置 =====# 需要强制走 LFS 的文件类型ENFORCE_LFS_EXTENSIONS="xlsx xls"# LFS pointer 标识LFS_SIGNATURE="git-lfs.github.com/spec"# ===== 主逻辑 =====whilereadoldrev newrev refnamedo# 新分支(oldrev 全0)处理if["$oldrev"="0000000000000000000000000000000000000000"];thenrange=$newrevelserange="$oldrev$newrev"fi# 遍历变更文件forfilein$(gitdiff-tree-r--no-commit-id --name-only $range);do# 获取扩展名ext="${file##*.}"# 判断是否在强制列表中forenforce_extin$ENFORCE_LFS_EXTENSIONS;doif["$ext"="$enforce_ext"];then# 获取 blob idblob=$(gitls-tree-r$newrev"$file"|awk'{print $3}')if[-z"$blob"];thencontinuefi# 读取前几行判断是否 LFS pointercontent=$(gitcat-file-p$blob|head-n5)echo"$content"|grep-q"$LFS_SIGNATURE"if[$?-ne0];thenecho"❌ Push rejected:"echo"File '$file' must be tracked by Git LFS (.gitattributes missing or not applied)"echo""echo"👉 Fix:"echo" git lfs track\"*.${ext}\""echo" git add .gitattributes"echo" git add\"$file\""echo" git commit -m\"fix: use lfs\""echo" git push"exit1fifidonedonedoneexit0
  3. 给权限:

    chmod+x pre-receive
http://www.jsqmd.com/news/560024/

相关文章:

  • Phi-4-Reasoning-Vision部署教程:解决15B模型显存溢出与加载失败问题
  • 2026年品牌价值安全化排行榜推荐,大观可惟为为企业品牌赋能 - 工业品牌热点
  • 2026年山东管材加工设备性价比排名,张家港市万荣机械反馈怎么样 - 工业品网
  • Prometheus远程数据重写实战:利用remote_rewrite优化跨集群监控数据整合
  • M2LOrder模型效果深度解析:多场景情感识别案例展示
  • 用Word多级列表+样式组合拳搞定毕业论文目录:含自动更新与罗马数字页码设置
  • Cursor账号总被封?试试这个企业级解决方案:域名邮箱+自动转发配置全流程
  • 5分钟精通!Clipy剪贴板管理工具让macOS效率翻倍
  • InterSystems IRIS安装避坑指南:从默认密码修改到多用户权限管理(2024.1社区版)
  • Qwen3.5-4B模型Proteus仿真辅助:基于自然语言的电路设计验证
  • WireShark抓包实战:5个高效过滤规则帮你快速定位网络问题
  • 暗黑破坏神2重制版智能自动化:Botty视觉识别与动态路径规划技术解析
  • MTools实战:用开箱即用镜像批量处理图片,效率提升300%
  • 大润发购物卡回收平台全攻略,闲置变现新选择 - 京顺回收
  • 文脉定序系统处理多语言语义排序实战:跨语言检索效果展示
  • 告别XML布局:用Splitties DSL重构Android UI开发的7个实战技巧
  • 探讨2026年东莞安杰铭电气设备创新能力强不强价格贵不贵 - 工业品牌热点
  • AI头像生成器:5分钟学会用AI设计专属头像,新手也能玩转
  • 三步搞定国家教育平台电子课本下载:教师必备的免费PDF获取工具
  • 云原生网络隔离指南:用OVS+VXLAN搭建多租户K8s网络
  • 嵌入式Linux电源管理实战:手把手教你配置设备树中的regulator节点(以RK平台为例)
  • 保姆级教程:用Halcon模板匹配搞定PCB板上的胶路检测(附完整代码)
  • 政策要求与实施路径:数据库替代倒计时
  • 聊聊小口径全自动弯管机价格,山东地区哪家费用合适 - 工业推荐榜
  • Win11Debloat:让Windows 11回归简洁高效的系统优化工具
  • LeoCAD:一款免费开源的虚拟乐高 CAD 软件
  • MPC Video Renderer技术指南:从基础到高级的HDR视频渲染解决方案
  • 小米 MiMo 开放免费 API|DMXAPI 携 22 + 款免费大模型 API 长期免费更省心
  • 图文混合翻译开发:TranslateGemma+Java实现智能翻译服务
  • Linux系统下Fish Speech 1.5性能调优:从安装到生产级部署