About Git Large File Storage
Git Large File Storage (Git LFS) 是 Git 的开源扩展,使您能够像处理其他文本文件一� �处理大文件。 You can use Git Large File Storage with a single repository, all of your personal or organization repositories, or with every repository in your enterprise. Before you can enable Git LFS for specific repositories or organizations, you need to enable Git LFS for your enterprise.
默认情况下,
Git Large File Storage 客户端在托管 Git 仓库的同一服务器上存储大型资产。 当 Git LFS 在 您的 GitHub Enterprise Server 实例 设备上启用时,大型资产将存储在 /data/user/storage
中的数据分区中。
Users cannot push Git LFS assets to GitHub Enterprise Server if Git LFS is disabled on the enterprise or repository.
For more information, see "About Git Large File Storage", "Versioning large files," and the Git Large File Storage project site.
Configuring Git Large File Storage for your enterprise
-
在 GitHub Enterprise Server 的右上角,单击您的个人资料照片,然后单击 Enterprise settings(Enterprise 设置)。
-
在企业账户侧边� �中,单击 Policies(政策)。
-
在Policies(政策)下,单击 Options(选项)。
-
Under "Git LFS access", use the drop-down menu, and click Enabled or Disabled.
Configuring Git Large File Storage for an individual repository
注意: 每个仓库自动从拥有它的组织或用户继承默认设置。 如果仓库所有者已在其所有仓库上强制执行设置,则您不能覆盖默认设置。
-
从 GitHub Enterprise Server 上的管理帐户中,在任何页面的右上角,单击 。
-
如果您尚未进入“站点管理员”页面,请在左上角单击 Site admin(站点管理员)。
-
在搜索字段中,输入仓库的名称,然后单击 Search(搜索)。
-
在搜索结果中,单击仓库名称。
-
在页面的右上角,单击 Admin(管理员)。
-
在左侧边� �中,单击 Admin(管理员)。
-
在“Git LFS”下,单击 Enable(启用)或 Disable(禁用)。
Configuring Git Large File Storage for every repository owned by a user account or organization
-
从 GitHub Enterprise Server 上的管理帐户中,在任何页面的右上角,单击 。
-
如果您尚未进入“站点管理员”页面,请在左上角单击 Site admin(站点管理员)。
-
在搜索字段中,输入用户或组织的名称,然后单击 Search(搜索)。
-
在搜索结果中,单击用户或组织的名称。
-
在页面的右上角,单击 Admin(管理员)。
-
在左侧边� �中,单击 Admin(管理员)。
-
在“Git LFS”下,单击 Enable(启用)或 Disable(禁用)。
Configuring Git Large File Storage to use a third party server
默认情况下,
Git Large File Storage 客户端在托管 Git 仓库的同一服务器上存储大型资产。 当 Git LFS 在 您的 GitHub Enterprise Server 实例 设备上启用时,大型资产将存储在 /data/user/storage
中的数据分区中。
Users cannot push Git LFS assets to GitHub Enterprise Server if Git LFS is disabled on the enterprise or repository.
-
Disable Git LFS on 您的 GitHub Enterprise Server 实例. For more information, see "Configuring Git Large File Storage for your enterprise."
-
Create a Git LFS configuration file that points to the third party server.
# 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
-
To keep the same Git LFS configuration for each user, commit a custom
.lfsconfig
file to the repository.$ git add .lfsconfig $ git commit -m "Adding LFS config file"
-
Migrate any existing Git LFS assets. For more information, see "Migrating to a different Git Large File Storage server."
Migrating to a different Git Large File Storage server
Before migrating to a different Git Large File Storage server, you must configure Git LFS to use a third party server. For more information, see "Configuring Git Large File Storage to use a third party server."
-
Configure the repository with a second remote.
$ 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)
-
Fetch all objects from the old remote.
$ 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
-
Push all objects to the new remote.
$ 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