Skip to main content

Git Large File Storage でのコラボレーション

Git LFSを有効にすると、大容量のファイルも Git で扱う通常のファイルと同じようにフェッチ、修正、プッシュできます。 ただし、Git LFSを持っていないユーザの場合、ワークフローが異なります。

リポジトリのコラボレーターが Git LFSをインストールしていない場合、オリジナルの大容量ファイルにはアクセスできません。 リポジトリのクローンを試みた場合、ポインタファイルをフェッチするのみで、実際のデータにはアクセスできません。

Tip

Git LFS を有効にしていないユーザーに対しては、大きなファイルの扱いについて記載したリポジトリ コントリビューターのためのガイドラインを設定することをお勧めします。 たとえば、大きなファイルを変更しないように共同作成者に依頼したり、DropboxGoogle ドライブなどのファイル共有サービスに変更をアップロードしたりできます。 詳しくは、「リポジトリコントリビューターのためのガイドラインを定める」を参照してください。

プルリクエストの大容量ファイルを表示する

GitHub には、pull request の一部の Git LFS オブジェクトが表示されません。 ポインター ファイルのみが表示され、内容は次のようになります。

+version https://git-lfs.github.com/spec/vi
+id sha256:7194bdd797bde471a6e29b4fa9c8c2278b3c4dadfc5cb2c36d7f4531dc6cb8f
+size 17330

ポインター ファイルの詳細については、「Git Large File Storageについて」を参照してください。

大きなファイルに加えられた変更を表示するには、プルリクエストをローカルでチェックアウトしてdiffを確認します。 詳しくは、「プルリクエストをローカルでチェック アウトする」を参照してください。

大容量ファイルをフォークにプッシュする

リポジトリのフォークに大容量ファイルをプッシュすると、フォークのオーナーのではなく、親リポジトリの、帯域幅およびストレージのクオータを消費することになります。

リポジトリネットワークですでに Git LFSオブジェクトがあるか、リポジトリネットワークのルートに書き込みアクセスがある場合、パブリックフォークに Git LFSオブジェクトをプッシュできます。

参考資料