コンテンツにスキップ

[git lfs] filter を使ってオブジェクトを絞り込む

Git LFS は、git 上で大容量のオブジェクトを管理するためのもの。オブジェクトを取り扱う際に、デフォルトでは管理化にある全てのオブジェクトが対象となるが、特定のオブジェクトだけを取り扱いたい場合には、filter 機能を使って絞り込むことができる。

考えられる利用ケースとしては、特定のディレクトリだけを対象とする場合や、特定のファイルだけを対象とする場合などがある。

filter の利用

lfs 実行時のオプションに --include または --exclude を指定することで、対象とするオブジェクトを絞り込むことができる。

1
2
3
4
5
# 指定したパスのオブジェクトだけを対象とする
git lfs ls-files --include="foo/"

# 複数指定する場合はカンマ区切りで指定
git lfs ls-files --exclude="foo/,bar/"

オブジェクトを pull する際も同様に --include または --exclude を指定することで、対象とするオブジェクトを絞り込むことができる。

# 指定したパスのオブジェクトだけを pull する
git lfs pull --include="foo/"

filter をデフォルトの設定に追加

filter の設定は、config に設定することでデフォルトの挙動を変更できる。

git config set lfs.fetchinclude "foo/"

設定をデフォルトに戻す場合は、unset を使って設定を削除する。

git config unset lfs.fetchinclude