目录
[GitLab 配置 Git LFS(Large File Storage)指南](#GitLab 配置 Git LFS(Large File Storage)指南)
[1. 什么是 Git LFS?](#1. 什么是 Git LFS?)
[2. GitLab 如何支持 Git LFS?](#2. GitLab 如何支持 Git LFS?)
[3. GitLab 配置 Git LFS 的步骤](#3. GitLab 配置 Git LFS 的步骤)
[3.1 启用 Git LFS(管理员操作)](#3.1 启用 Git LFS(管理员操作))
[3.2 客户端安装 Git LFS](#3.2 客户端安装 Git LFS)
[3.3 在 GitLab 仓库中使用 Git LFS](#3.3 在 GitLab 仓库中使用 Git LFS)
[3.4 迁移已有的 Git 仓库到 Git LFS](#3.4 迁移已有的 Git 仓库到 Git LFS)
[4. Git LFS 在 GitLab 上的注意事项](#4. Git LFS 在 GitLab 上的注意事项)
[5. 总结](#5. 总结)
GitLab 配置 Git LFS(Large File Storage)指南
1. 什么是 Git LFS?
Git LFS(Large File Storage)是 Git 的一个扩展,专门用于管理和存储大文件。它通过将大文件存储在 Git LFS 服务器上,而 Git 仓库中仅存储指针文件,从而优化 Git 仓库的性能。
在 GitLab 上,我们可以使用 Git LFS 来管理大文件,使仓库更轻量、高效。
2. GitLab 如何支持 Git LFS?
GitLab 原生支持 Git LFS,因此不需要额外的插件或配置,只需确保 GitLab 服务器和客户端正确配置了 Git LFS。
3. GitLab 配置 Git LFS 的步骤
3.1 启用 Git LFS(管理员操作)
如果你的 GitLab 实例是自托管的,需要确保 Git LFS 已启用。GitLab CE/EE 默认启用了 Git LFS,但可通过以下方式确认:
-
检查 GitLab 配置
-
以管理员身份进入 GitLab 服务器。
-
打开 GitLab 配置文件
/etc/gitlab/gitlab.rb
。 -
确保
gitlab_rails['lfs_enabled'] = true
。sudo nano /etc/gitlab/gitlab.rb
找到如下行并确保其存在:
gitlab_rails['lfs_enabled'] = true
-
如果修改了配置文件,运行以下命令重新配置 GitLab:
sudo gitlab-ctl reconfigure
-
然后重启 GitLab 以使更改生效:
sudo gitlab-ctl restart
-
-
在 GitLab 项目中启用 LFS
- 进入 GitLab Web UI。
- 打开 项目 -> 设置(Settings)-> 存储库(Repository)。
- 在 Large File Storage (LFS) 选项中,确保 Enable Git LFS 选项已勾选。
3.2 客户端安装 Git LFS
在客户端上,需要安装 Git LFS 以便正确管理大文件。
-
Windows
git lfs install
-
macOS(使用 Homebrew)
brew install git-lfs git lfs install
-
Linux(Ubuntu/Debian)
sudo apt install git-lfs git lfs install
3.3 在 GitLab 仓库中使用 Git LFS
-
初始化 Git LFS
git lfs install
该命令只需执行一次,确保本地 Git LFS 已启用。
-
追踪特定文件类型 在仓库目录中运行以下命令,例如追踪
.psd
文件:git lfs track "*.psd"
该命令会在仓库根目录创建
.gitattributes
文件,并添加:*.psd filter=lfs diff=lfs merge=lfs -text
提交
.gitattributes
文件,以确保团队成员同步 Git LFS 配置。git add .gitattributes git commit -m "Track large files with Git LFS"
-
提交大文件 添加并提交大文件时,Git LFS 会自动管理它们:
git add large_file.psd git commit -m "Add large file using Git LFS" git push origin main
-
克隆和拉取 Git LFS 文件 当其他开发者克隆或拉取仓库时,需要确保 Git LFS 文件被正确下载:
git clone https://gitlab.com/user/repo.git git lfs pull
git lfs pull
用于拉取 LFS 服务器上的大文件。
3.4 迁移已有的 Git 仓库到 Git LFS
如果已有仓库包含大文件,可以使用以下命令迁移:
# 追踪大文件类型
git lfs migrate import --include="*.mp4,*.zip,*.psd"
然后将变更提交到仓库:
git push origin main --force
注意:强制推送会重写历史记录,所有协作者需要重新克隆仓库。
4. Git LFS 在 GitLab 上的注意事项
- GitLab 免费版 LFS 存储有限制 GitLab.com 提供的免费 LFS 存储有 10GB 限制,企业版可以自行配置存储。
- 确保所有协作者安装了 Git LFS 否则,克隆仓库时只会获取指针文件,而不会拉取大文件。
- 定期清理 Git LFS 存储 如果 Git LFS 服务器存储空间有限,可以使用
git lfs prune
来清理本地缓存。
5. 总结
GitLab 提供了对 Git LFS 的原生支持,使团队可以高效管理大文件。正确配置 Git LFS 后,可以显著提高 Git 仓库的性能,避免仓库膨胀导致的速度下降。按照本指南,你可以顺利在 GitLab 项目中启用 Git LFS,并高效管理大文件。
希望这篇文章能帮助你顺利配置 GitLab 的 Git LFS!