关于 Git 大型文件存储
Git 大型文件存储 (Git LFS) 是 Git 的开源扩展,使您能够像处理其他文本文件一样处理大文件。 你可以将 Git 大型文件存储 与单一仓库、所有个人或组织仓库或企业中的每一个仓库结合使用。 你需要先为企业启用 Git LFS,然后才能为特定仓库或组织启用 Git LFS。
默认情况下,Git 大型文件存储 客户端将大型资产存储在托管 Git 存储库的同一服务器上。 在 你的 GitHub Enterprise Server 实例 上启用 Git LFS 后,大型资产存储在 /data/user/storage 的数据分区中。
如果在企业或仓库上禁用了 Git LFS,则用户无法将 Git LFS 资产推送到 GitHub。
有关详细信息,请参阅“关于 Git 大文件存储系统”、“管理大型文件”和 Git 大型文件存储 项目网站。
为企业配置 Git 大型文件存储
- 在 GitHub Enterprise Server 的右上角,单击你的个人资料头像,然后单击“Enterprise settings”****。
- 在页面左侧的企业帐户边栏中,单击“ Policies”********。
- 在 “Policies”下,单击“Options”********。
- 在“Git LFS 访问”下,选择下拉菜单,然后单击已启用或已禁用。
为单个仓库配置 Git 大型文件存储
注意
每个存储库自动从拥有它的组织或用户继承默认设置。 如果仓库所有者已在其所有仓库上强制执行设置,则您不能覆盖默认设置。
- 在 GitHub Enterprise Server 上的管理帐户中,在任一页面的右上角,单击“”。
- 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。1. 在“搜索用户、组织、团队、存储库、Gist 和应用程序”下的文本字段中键入存储库的名称。 然后在字段右侧单击“搜索”。
1. 在“搜索结果 - 存储库”下,单击存储库的名称。1. 在页面的右上角,单击“ Admin”****。
1. 在左侧边栏中,单击“管理员”。
1. 在“切换 Git LFS 访问”旁边的“Git LFS”部分中,单击“启用”或“禁用” 。
为用户帐户或组织拥有的每个仓库配置 Git 大型文件存储
- 在 GitHub Enterprise Server 上的管理帐户中,在任一页面的右上角,单击“”。
- 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。
- 在“搜索用户、组织、团队、存储库、Gist 和应用程序”下的文本字段中键入用户或组织的名称。 然后在字段右侧单击“搜索”。

- 在搜索结果中,单击用户或组织的名称。

- 在页面的右上角,单击“ Admin”****。

- 在左侧边栏中,单击“管理员”。

- 在“切换 Git LFS 访问”旁边的“Git LFS”部分中,单击“启用”或“禁用” 。
将 Git Large File Storage 配置为使用第三方服务器
默认情况下,Git 大型文件存储 客户端将大型资产存储在托管 Git 存储库的同一服务器上。 在 你的 GitHub Enterprise Server 实例 上启用 Git LFS 后,大型资产存储在 /data/user/storage 的数据分区中。
如果在企业或仓库上禁用了 Git LFS,则用户无法将 Git LFS 资产推送到 GitHub。
-
在 你的 GitHub Enterprise Server 实例 上禁用 Git LFS。 有关详细信息,请参阅“为企业配置 Git 大型文件存储”。
-
创建指向第三方服务器的 Git LFS 配置文件。
# Show default configuration $ git lfs env > git-lfs/1.1.0 (GitHub; darwin amd64; go 1.5.1; git 94d356c) > git version 2.7.4 (Apple Git-66) > Endpoint=https://GITHUB-ENTERPRISE-HOST/path/to/repo/info/lfs (auth=basic) # Create .lfsconfig that points to third party server. $ git config -f .lfsconfig remote.origin.lfsurl https://THIRD-PARTY-LFS-SERVER/path/to/repo $ git lfs env > git-lfs/1.1.0 (GitHub; darwin amd64; go 1.5.1; git 94d356c) > git version 2.7.4 (Apple Git-66) > Endpoint=https://THIRD-PARTY-LFS-SERVER/path/to/repo/info/lfs (auth=none) # Show the contents of .lfsconfig $ cat .lfsconfig [remote "origin"] lfsurl = https://THIRD-PARTY-LFS-SERVER/path/to/repo -
为使各用户的 Git LFS 配置相同,请向存储库提交自定义
.lfsconfig文件。git add .lfsconfig git commit -m "Adding LFS config file" -
迁移任何现有的 Git LFS 资源。 有关详细信息,请参阅“迁移到不同的 Git 大型文件存储 服务器”。
迁移到其他 Git Large File Storage 服务器
迁移到其他 Git 大型文件存储 服务器之前,您必须将 Git LFS 配置为使用第三方服务器。 有关详细信息,请参阅“配置 Git 大型文件存储 以使用第三方服务器”。
-
使用第二个远端配置仓库。
$ git remote add NEW-REMOTE https://NEW-REMOTE-HOSTNAME/path/to/repo $ git lfs env > git-lfs/1.1.0 (GitHub; darwin amd64; go 1.5.1; git 94d356c) > git version 2.7.4 (Apple Git-66) > Endpoint=https://GITHUB-ENTERPRISE-HOST/path/to/repo/info/lfs (auth=basic) > Endpoint (NEW-REMOTE)=https://NEW-REMOTE-HOSTNAME/path/to/repo/info/lfs (auth=none) -
从旧远程提取所有对象。
$ git lfs fetch origin --all > Scanning for all objects ever referenced... > ✔ 16 objects found > Fetching objects... > Git LFS: (16 of 16 files) 48.71 MB / 48.85 MB -
将所有对象推送到新远端。
$ git lfs push NEW-REMOTE --all > Scanning for all objects ever referenced... > ✔ 16 objects found > Pushing objects... > Git LFS: (16 of 16 files) 48.00 MB / 48.85 MB, 879.10 KB skipped
其他阅读材料
-
[Git 大型文件存储 项目站点](https://git-lfs.com/)