git lfs (Git Large File Storage) は、Git リポジトリで大容量ファイル(画像、動画、音声、バイナリなど)を効率的に扱うための拡張機能です。
大きなファイルを直接 Git に保存するのではなく、Git にはポインタ情報のみを記録し、実体は LFS サーバーに保存する仕組みです。
構文(Syntax)
git lfs <サブコマンド> [オプション]
主なサブコマンド一覧
| サブコマンド | 説明 | 使用例 |
|---|---|---|
install | Git LFS を初期化(フックを設定) | git lfs install |
track <pattern> | LFS で管理するファイルパターンを指定 | git lfs track "*.psd" |
untrack <pattern> | LFS 管理から除外する | git lfs untrack "*.psd" |
ls-files | LFS で管理されているファイル一覧 | git lfs ls-files |
status | LFS ファイルの状態を確認 | git lfs status |
fetch | リモートから LFS オブジェクトを取得 | git lfs fetch |
pull | LFS オブジェクトをダウンロードして作業ツリーに展開 | git lfs pull |
push | LFS オブジェクトをアップロード | git lfs push origin main |
locks | ロック状態を確認 | git lfs locks |
lock <file> | ファイルをロック | git lfs lock largefile.bin |
unlock <file> | ロック解除 | git lfs unlock largefile.bin |
実行例
Git LFS を有効化
git lfs install
特定の拡張子を LFS で管理
git lfs track "*.zip"
出力例:
Tracking "*.zip"
(.gitattributes に記録される)
LFS で管理されているファイルを確認
git lfs ls-files
LFS 対象ファイルを含むリポジトリを clone
git clone https://github.com/example/repo.git
cd repo
git lfs pull
リモートに大容量ファイルを push
git add bigdata.csv
git commit -m "Add big data file"
git push origin main
ファイルをロック
git lfs lock design.psd
エラー例(LFS が未インストール)
git lfs track "*.psd"
出力例:
git: 'lfs' is not a git command. See 'git --help'.
関連コマンド
git config: LFS 設定の確認や変更に利用。git clone: LFS 対応リポジトリの取得時にgit lfs pullが必要。
備考
.gitattributesファイルに LFS 対象パターンが保存され、リポジトリ全体で共有されます。- GitHub / GitLab / Bitbucket など主要なホスティングサービスが LFS をサポートしています。
- 無料枠を超えるとストレージ・帯域に課金される場合があります。
参考
- Git LFS 公式: https://git-lfs.github.com/
- ドキュメント: https://github.com/git-lfs/git-lfs/wiki

コメント