Skip to main content

Enterprise Server 3.15 は、現在リリース候補として使用できます。

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

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

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 を設定する

  1. GitHub Enterprise Server の右上で、ご自分のプロフィール フォトをクリックしてから、 [Enterprise 設定] をクリックします。

    GitHub Enterprise Server のプロファイル写真をクリックしたときに表示されるドロップダウン メニューのスクリーンショット。 [エンタープライズ設定] オプションが濃いオレンジ色の枠線で強調表示されています。

  2. ページの左側にある Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。

  3. [ポリシー] で、[オプション] をクリックします。

  4. [Git LFS アクセス] で、ドロップダウン メニューを選んで、 [有効] または [無効] をクリックします。

個々のリポジトリ用に Git Large File Storage を設定する

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

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

ユーザーアカウントまたは Organization が所有するすべてのリポジトリ用に Git Large File Storage を設定する

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

サードパーティのサーバを使う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にプッシュできません。

  1. お使いの GitHub Enterprise Server インスタンス で Git LFS を無効化します。 詳細については、「Enterprise に Git Large File Storage を構成する」を参照してください。

  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 Large File Storage サーバーへの移行」を参照してください。

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

別の Git Large File Storage サーバーに移行する前に、サードパーティのサーバーを使用するように Git LFS を設定する必要があります。 詳細については、「サードパーティのサーバーを使用するように Git Large File Storage を構成する」を参照してください。

  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
    

参考資料