Skip to main content

Enterprise 向けの Git Large File Storage を設定する

Git 大容量ファイルストレージ (Git LFS) は Git のオープンソース拡張で、大きいファイルを他のテキストファイルと同じように扱えるようにしてくれます。

Git 大容量ファイルストレージについて

Git 大容量ファイルストレージ (Git LFS) は Git のオープンソース拡張で、大きいファイルを他のテキストファイルと同じように扱えるようにしてくれます。 Git 大容量ファイルストレージ は、単一のリポジトリ、すべての個人または Organization のリポジトリ、または Enterprise 内のすべてのリポジトリで使用できます。 特定のリポジトリまたは組織に対して Git LFS を有効にする前に、エンタープライズに対して Git LFS を有効にする必要があります。

既定では、Git 大容量ファイルストレージ クライアントは大きなアセットを Git リポジトリをホストしているのと同じサーバーに保存します。 Git LFS で お使いの GitHub Enterprise Server インスタンス が有効になっている場合、大きなアセットは /data/user/storage のデータ パーティションに格納されます。 Enterprise またはリポジトリで Git LFS が無効化されている場合、ユーザーは GitHub アセットを Git LFS にプッシュできません。

詳細については、「Git Large File Storageについて」、「大きなファイルを管理する」、Git 大容量ファイルストレージ プロジェクト サイトを参照してください。

データ再利用可能な.large_filesは-lfs-オブジェクト-アーカイブを含めることができる

Enterprise 向けに Git 大容量ファイルストレージ を設定する

  1. GitHub Enterprise Server の右上隅にあるプロフィール画像をクリックしてから、[Enterprise settings] をクリックします。
  2. ページの上部にある [ Policies] をクリックします。
  3. [ Policies] で、[Options] をクリックします。
  4. [Git LFS アクセス] で、ドロップダウン メニューを選んで、 [有効] または [無効] をクリックします。

個々のリポジトリ用に Git 大容量ファイルストレージ を設定する

メモ

各リポジトリは、それを所有する organization またはユーザーから既定の設定を自動的に継承します。 リポジトリのオーナーが、所有するすべてのリポジトリに対して設定を強制している場合、デフォルト設定は上書きできません。

  1. GitHub Enterprise Server の管理アカウントから、任意のページの右上隅にある をクリックします。
  2. [サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。
  3. [ユーザー、Organization、チーム、リポジトリ、gist、アプリケーションを検索する] のテキスト フィールドに、リポジトリの名前を入力します。 次に、フィールドの右側にある [検索] をクリックします。
    [サイト管理者] の設定の [検索] ページのスクリーンショット。 リポジトリを検索するための [Search] というラベルのボタンが、枠線で囲まれています。
  4. [検索結果 – リポジトリ] で、リポジトリの名前をクリックします。
  5. ページの右上隅にある [ Admin] をクリックします。
    ユーザーまたはリポジトリの [Site admin] ページのヘッダーのスクリーンショット。 [管理] タブがオレンジ色の枠線で強調表示されています。
  6. 左側のサイドバーで、 [管理者] をクリックします。
    [サイト管理者] ページの左サイドバーのスクリーンショット。 [管理者] メニュー オプションが、オレンジ色の枠線で強調されています。
  7. [Git LFS] セクションで、[Git LFS アクセスの切り替え] の横にある [有効] または [無効] をクリックします。

ユーザーアカウントまたは Organization が所有するすべてのリポジトリ用に Git 大容量ファイルストレージ を設定する

  1. GitHub Enterprise Server の管理アカウントから、任意のページの右上隅にある をクリックします。
  2. [サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。
  3. [ユーザー、Organization、チーム、リポジトリ、gist、アプリケーションを検索する] のテキスト フィールドに、ユーザーまたは Organization の名前を入力します。 次に、フィールドの右側にある [検索] をクリックします。
    [サイト管理者] の設定の [検索] ページのスクリーンショット。 ユーザーと organization を検索するための [Search] というラベルのボタンが、枠線で囲まれています。
  4. 検索結果で、ユーザもしくはOrganizationの名前をクリックしてください。
    "Accounts" の検索結果のスクリーンショット。 一致した検索結果の一覧では、"user1" がオレンジ色の枠線で強調表示されています。
  5. ページの右上隅にある [ Admin] をクリックします。
    ユーザーまたはリポジトリの [Site admin] ページのヘッダーのスクリーンショット。 [管理] タブがオレンジ色の枠線で強調表示されています。
  6. 左側のサイドバーで、 [管理者] をクリックします。
    [サイト管理者] ページの左サイドバーのスクリーンショット。 [管理者] メニュー オプションが、オレンジ色の枠線で強調されています。
  7. [Git LFS] セクションで、[Git LFS アクセスの切り替え] の横にある [有効] または [無効] をクリックします。

サードパーティのサーバを使うGit Large File Storageの設定

既定では、Git 大容量ファイルストレージ クライアントは大きなアセットを Git リポジトリをホストしているのと同じサーバーに保存します。 Git LFS で お使いの GitHub Enterprise Server インスタンス が有効になっている場合、大きなアセットは /data/user/storage のデータ パーティションに格納されます。 Enterprise またはリポジトリで Git LFS が無効化されている場合、ユーザーは GitHub アセットを Git LFS にプッシュできません。

  1. お使いの GitHub Enterprise Server インスタンス で Git LFS を無効化します。 詳細については、「Enterprise に Git 大容量ファイルストレージ を構成する」を参照してください。

  2. サードパーティのサーバーを指し示す 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
    
  3. ユーザーごとに同じ Git LFS 構成を保持するには、カスタム .lfsconfig ファイルをリポジトリにコミットします。

    git add .lfsconfig
    git commit -m "Adding LFS config file"
    
  4. 既存の Git LFS アセットを移行します。 詳細については、「別の Git 大容量ファイルストレージ サーバーへの移行」を参照してください。

異なるGit Large File Storageサーバへの移行

別の Git 大容量ファイルストレージ サーバーに移行する前に、サードパーティのサーバーを使用するように Git LFS を設定する必要があります。 詳細については、「サードパーティのサーバーを使用するように Git 大容量ファイルストレージ を構成する」を参照してください。

  1. 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)
    
  2. 古いリモートからすべてのオブジェクトを取得します。

    $ 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
    
  3. すべてのオブジェクトを新しいリモートにプッシュします。

    $ 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
    

参考資料