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