Git Large File Storageについて
Git Large File Storage (Git LFS) は Git のオープンソース拡張で、大きいファイルを他のテキストファイルと同じように扱えるようにしてくれます。 Git Large File Storage は、単一のリポジトリ、すべての個人または Organization のリポジトリ、または Enterprise 内のすべてのリポジトリで使用できます。 特定のリポジトリまたは Organization に対して Git LFS を有効にする前に、Enterprise に対して Git LFS を有効にする必要があります。
デフォルトでは、
Git Large File Storageクライアントは大きなアセットをGitリポジトリがホストされているのと同じサーバーに保存します。 GitHub Enterprise ServerのインスタンスでGit LFSが有効化されている場合、大きなアセットは/data/user/storage
にあるデータパーティションに保存されます。
EnterpriseもしくはリポジトリでGit LFSが無効化されている場合、ユーザはGit LFSアセットをGitHub Enterprise Serverにプッシュできません。
詳しい情報については"Git Large File Storageについて"、"大きなファイルのバージョニング" 、Git Large File Storageプロジェクトサイトを参照してください。
Enterprise 向けに Git Large File Storage を設定する
-
GitHub Enterprise Serverの右上で、プロフィール写真をクリックし、続いてEnterprise settings(Enterpriseの設定)をクリックしてください。
-
Enterpriseアカウントのサイドバーで、 Policies(ポリシー)をクリックしてください。
-
Policies(ポリシー)の下で、Options(オプション)をクリックしてください。
-
[Git LFS access]で、ドロップダウンメニューを使用して [Enabled] または [Disabled] をクリックします。
個々のリポジトリ用に Git Large File Storage を設定する
ノート: 各リポジトリは、そのリポジトリを所有するOrganizationもしくはユーザのデフォルト設定を自動的に継承します。 リポジトリのオーナーが、所有するすべてのリポジトリに対して設定を強制している場合、デフォルト設定は上書きできません。
- GitHub Enterprise Serverの管理アカウントから、任意のページの右上にあるをクリックしてください。
- 検索フィールドでリポジトリ名を入力し、Search(検索)をクリックしてください。
- 検索結果で、リポジトリ名をクリックしてください。
- ページの右上から Admin(管理)をクリックしてください。
- 左のサイドバーで Admn(管理)をクリックしてください。
- "Git LFS"の下で、Enable(有効化)もしくはDisable(無効化)をクリックしてください。
ユーザーアカウントまたは Organization が所有するすべてのリポジトリ用に Git Large File Storage を設定する
- GitHub Enterprise Serverの管理アカウントから、任意のページの右上にあるをクリックしてください。
- 検索フィールドでユーザもしくはOrganizationの名前を入力し、Search(検索)をクリックしてください。
- 検索結果で、ユーザもしくはOrganizationの名前をクリックしてください。
- ページの右上から Admin(管理)をクリックしてください。
- 左のサイドバーで Admn(管理)をクリックしてください。
- "Git LFS"の下で、Enable(有効化)もしくはDisable(無効化)をクリックしてください。
サードパーティのサーバを使うGit Large File Storageの設定
デフォルトでは、
Git Large File Storageクライアントは大きなアセットをGitリポジトリがホストされているのと同じサーバーに保存します。 GitHub Enterprise ServerのインスタンスでGit LFSが有効化されている場合、大きなアセットは/data/user/storage
にあるデータパーティションに保存されます。
EnterpriseもしくはリポジトリでGit LFSが無効化されている場合、ユーザはGit LFSアセットをGitHub Enterprise Serverにプッシュできません。
-
GitHub Enterprise Serverのインスタンス で Git LFS を無効化します。 詳しい情報については、「Enterprise の Git Large File Storage を設定する」を参照してください。
-
サードパーティのサーバーを指し示す Git LFS の設定ファイルを作成します。
# デフォルト設定を表示 $ 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) # サードパーティサーバーを指す .lfsconfig を作成します。 $ 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) # .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 Large File Storage サーバーへ移行する」を参照してください。
異なるGit Large File Storageサーバへの移行
別の Git Large File Storage サーバーに移行する前に、サードパーティのサーバーを使用するように Git LFS を設定する必要があります。 詳細については、「サードパーティのサーバーを使用するための Git Large File Storage を設定する」を参照してください。
-
2 番目のリモートでリポジトリを設定します。
$ 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