温馨提示×

新手如何用LFS

小樊
36
2025-12-31 23:27:49
栏目: 编程语言

新手使用 Git LFS 快速上手

一 概念与适用场景

  • Git LFS(Large File Storage)是 Git 的扩展,用“指针”替换仓库中的大文件,真实内容存放在LFS 专用存储;克隆/拉取时先拿指针,按需下载大文件,从而让仓库更小、操作更快、体验更透明。适用于PSD/AI、音视频、压缩包、数据集、安装包、模型文件等体积较大的资源。工作原理包括:add 时拦截写入指针、push 时上传真实内容到 LFS 服务器、checkout/smudge 时再自动还原真实文件。

二 安装与初始化

  • 安装
    • Windows:安装最新版 Git for Windows(已集成 LFS),或前往官网安装包;安装后执行一次初始化。
    • macOS:使用 Homebrewbrew install git-lfs
    • Linux Debian/Ubuntu
      curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
      sudo apt-get install git-lfs
      
    • Linux RHEL/CentOS
      curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash
      sudo yum install git-lfs    # 或 dnf install git-lfs
      
    • 二进制包/源码:可从 GitHub Releases 获取并运行安装脚本(会放入 PATH 并执行 git lfs install)。
  • 初始化
    • 全局启用一次:git lfs install(为当前用户设置 Git 钩子/过滤器,使 LFS 生效)。

三 新仓库使用步骤

  • 1)创建并进入仓库
    git init
    git remote add origin <your-repo-url>
    
  • 2)配置跟踪规则(会写入 .gitattributes
    git lfs track "*.psd"
    git lfs track "*.zip" "*.mp4"
    # 谨慎:按文件大小跟踪(示例为 >100MB,避免误伤小文件)
    git lfs track --size=100M "*"
    git lfs track    # 查看已配置的规则
    
  • 3)提交并推送
    git add .gitattributes
    git add large_file.psd
    git commit -m "Add large file with LFS"
    git push origin main
    
  • 4)克隆与拉取
    • 常规克隆(已装 LFS 会自动下载大文件):git clone <repo-url>
    • 若克隆后大文件是“指针文本”,手动拉取:git lfs pull
  • 5)常用检查
    git lfs ls-files   # 查看被 LFS 跟踪的文件
    git lfs status    # 查看 LFS 文件状态
    
  • 6)可选:文件锁定(避免多人同时改同一二进制)
    git lfs lock images/logo.png
    git lfs locks
    git lfs unlock images/logo.png
    

以上流程同样适用于 GitHub/GitLab/Codeup 等主流托管平台。

四 常见问题与避坑

  • 远程需支持 LFS:GitHub/GitLab/Codeup 均支持,但部分场景需先在项目/平台侧开启;若未启用,推送会失败或仅上传指针。
  • 不要对已纳入 Git 历史的大文件“事后”加 LFS:历史版本仍占用仓库体积。正确做法是先备份,再用 git lfs migrate import --include="*.psd,*.mp4" 迁移历史,然后 git push --force(高风险,务必先备份/评审)。
  • 必须提交 .gitattributes:它是团队共享的 LFS 规则文件,未提交会导致他人环境不生效。
  • 配额与成本:多数平台对 LFS 存储/带宽设限或计费,注意清理无用版本,必要时升级套餐。
  • 性能提示:LFS 能显著改善克隆/拉取,但频繁改动的大文件仍会影响性能;尽量拆分或外部化管理超大数据集。
  • 大小写与通配符:在 git lfs track "*.psd" 等处使用双引号,避免 Shell 扩展影响匹配;路径模式需与实际文件匹配。

0