LFSとは、Large File Storage(大きいファイルの保存領域)のことです。
Gitはソースコードのバージョン管理を目的としていたシステムです。画像や音声データなどのバイナリーデータも放り込めるのですが、本来は大きなサイズのバイナリーファイルを扱うようにできておらず、低速な上に、1ファイル100MByteまでという制約があります。そこで、大容量のデータを効率よく、高速に扱うためのLFSが提供されるようになりました。
詳しくはこちら → Git Large File Storage - How to Work with Big Files - YouTube
LFSを使うことは必須ではありませんが、使った方が速度面でメリットがあったりしますし、100MByte以上のファイルが扱えるようになります。ただし、バンド幅と容量に制限があります。無料ではどちらも1GByte/月です。$5/月を支払うと、50GByte/月に増やすことができます(2017/11/23追記)。オーバーしたからすぐに課金される訳ではありませんが、利用にあたっては使い方や容量などを検討して導入してください。
新旧GitHub Desktopで使う手順をまとめます。
目次
前提
この記事は以下の環境で試したものです。
GitHub Desktop 新版
Electronで作り直された新バージョンですが、旧版より機能が少なくてなんだか使いにくい...という微妙なツールです。旧版だとGUIだけでLFSの設定ができますが、こちらではコマンドラインでの操作が必要になります。では設定を進めていきます。
- GitHub Desktopを起動します
- Gitコマンドをインストールしていない場合、以下のような画面が表示されます。その場合は、[Install Git]でGitをインストールします。以下の画面が表示されなければ準備できていますので、LFSで管理したい拡張子を登録に進んでください
- 1のDownloadをクリックします
- Gitのページが開くので、最新版(Latest)をダウンロードします
- ダウンロードが完了したファイルを実行して、インストールしてください。セキュリティの警告などが表示されたら[実行]して、設定はそのままで結構です
- インストールが完了したら、Release Noteページが表示されますが、閉じて結構です
- インストールを反映するために、GitHub Desktopを閉じて起動し直します
- 改めて、[Repository]メニューから[Open in Command Prompt]を選択すると、コマンドプロンプトが開きます
LFSの初期化
リポジトリーのフォルダーにいる状態でコマンドプロンプトが開きます。コマンドで、LFSの設定を行います。
git lfs install
この作業は、リポジトリーに対して一回やればOKです。
LFSで管理したい拡張子を登録
- LFSに登録したい大きなバイナリーファイルの拡張子を登録します。例えば以下のようにすると、
GIF
,PNG
,JPG
,WAV
,OGG
,MP3
をLFSに登録するようになります。不要なものは外して、他に必要と思われる拡張子を同様に追加してください
git lfs track *.gif *.png *.jpg *.wav *.ogg *.mp3
これでリポジトリーに.gitattributes
というファイルが生成されます。これがLFSの設定ファイルです。これ以降、登録した拡張子のファイルをリポジトリーに追加すると、自動的にLFSに登録するようになります。
試しにサンプルピクチャの菊をリポジトリーに追加してみました。これを適当な件名を入力してコミットします。
コミットが完了したら、Pushします。
LFSに登録されたか確認してみます。[Repository]メニューから[View on GitHub]を選択します。
登録した画像ファイルをクリックして、容量の隣辺りに[Stored with Git LFS]が表示されていれば成功です。
新しいGitHub Desktopでのセットアップ作業は以上です。以降、普通に使えば、登録した拡張子のファイルは自動的にLFSで管理されるようになります。
すでに登録済みのファイルはどうする?
残念ながら、自動的にLFSには移動してくれないようです。
とすると、LFSに登録し直されます。
GitHub Desktop 旧版
こちらの方はめちゃくちゃ簡単です。
まずは、LFSを使いたいリポジトリーを作成したり、クローンして開きます。
LFSで管理したい拡張子を登録
- 設定したいリポジトリーを左の一覧から選択します
- 右上の歯車アイコンから、[Repository Settings...]を選択します
- 左から[Git LFS]を選択してから、右の欄に
*.gif
のように入力して、[+]をクリックして登録していきます。まとめて登録できないので、1つ1つ登録してください
- 上記は、
GIF
,PNG
,JPG
,WAV
,OGG
,MP3
ファイルをLFSで管理する為の例です。登録が完了したら、[OK]を押します。これで設定ファイル.gitattributes
が作成されます。以降、登録した拡張子のファイルはLFSで管理されるようになります
試しにファイルを登録する
試しに、サンプルピクチャーの菊の画像を登録してみました。[Changes]のボタンをクリックして、変更内容を確認します。
[Summary]欄に適当にコメントを書いて、[Commit to master]をクリックしてコミットします。
右上の[Sync]、あるいは[Publish]をクリックしてGitHubにプッシュすれば完了です。
LFSで作成されているか確認してみます。リポジトリーを右クリックして、[View on GitHub]を選択します。
追加した画像をクリックします。
容量の隣辺りに[Stored with Git LFS]と表示されていれば成功です。
以上で設定完了です。これ以降は、普通にプロジェクト管理すれば、登録した拡張子のファイルは自動的にLFSで管理されるようになります。
すでにリポジトリーに登録済みのファイルは、自動的にはLFSで管理されるようにはならないようです。再登録の手順はこちら
参考URL
- Git Large File Storage | Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise.
- GitHub の Git LFS で使用しているストレージ容量と転送量を増やす
- Purchasing additional storage and bandwidth for an organization - User Documentation