Git LFS 安装和使用
Git LFS简介
Git Large File Storage (Git LFS) 是 Git 的一个扩展,用于更有效地处理大型文件。它通过用指针替换大文件来工作,实际文件内容存储在远程服务器上。
Git LFS解决的痛点
处理大文件(如二进制文件、视频、音频、数据集等)
频繁修改大文件会导致仓库体积快速增长
克隆和拉取操作变慢
Git LFS 解决了这些问题,使 Git 更适合管理大型文件。
安装 Git LFS
Windows
下载安装程序:https://git-lfs.github.com/
运行安装程序
macOS
使用 Homebrew 安装:
brew install git-lfs
Linux
在基于 Debian 的系统上:
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
安装完成后,运行:
git lfs install
基本使用
1. 跟踪大文件
git lfs track "*.psd"
git lfs track "*.zip"
git lfs track "data/*.bin"
这会创建一个或修改 .gitattributes 文件,其中包含跟踪规则。
2. 查看当前跟踪的文件模式
git lfs track
3. 提交更改
git add .gitattributes
git add large_file.psd
git commit -m "Add design file with LFS"
git push origin main
4. 克隆包含 LFS 文件的仓库
git clone <repository-url>
git lfs pull
高级用法
列出 LFS 文件
git lfs ls-files
检查 LFS 文件状态
git lfs status
迁移现有仓库到 LFS
git lfs migrate import --include="*.psd,*.mp4"
git push --force
设置 LFS 文件锁定(防止多人同时修改)
git lfs lock images/logo.png
git lfs locks
git lfs unlock images/logo.png
注意事项
存储配额:许多 Git 托管服务(如 GitHub、GitLab)对 LFS 存储有限制
性能:虽然 LFS 改进了大文件处理,但频繁更改大文件仍会影响性能
备份:确保 LFS 服务器有适当的备份策略
成本:某些托管服务对 LFS 存储收取额外费用
常见问题
Q: 如何知道哪些文件被 LFS 跟踪?
A: 检查 .gitattributes 文件或运行 git lfs track
Q: 我可以更改已提交文件的 LFS 状态吗?
A: 可以,但需要使用 git lfs migrate 命令,这会重写历史记录
Q: Git LFS 支持哪些 Git 托管服务?
A: GitHub、GitLab、Bitbucket 等主流服务都支持 Git LFS
通过合理使用 Git LFS,您可以更高效地管理项目中的大型文件,保持 Git 仓库的轻量和高效。