.gitattributesでのGit LFSパターン
PSDファイル、動画、データセットなどの大きなバイナリアセットをリポジトリサイズを膨張させずに追跡するためのGit Large File Storage(LFS)用の.gitattributes設定方法。
Binary Files
詳細な説明
Git LFSと.gitattributes
Git Large File Storage(LFS)は、Git内の大きなファイルをテキストポインターに置き換え、実際のファイル内容を別のサーバーに保存します。.gitattributesファイルは、どのファイルをLFSで管理すべきかをGitに伝える手段です。
LFS属性の構文
# デザインアセット
*.psd filter=lfs diff=lfs merge=lfs -text
*.ai filter=lfs diff=lfs merge=lfs -text
*.sketch filter=lfs diff=lfs merge=lfs -text
*.fig filter=lfs diff=lfs merge=lfs -text
# 動画/音声
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.mov filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
# 3Dモデル
*.fbx filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text
*.blend filter=lfs diff=lfs merge=lfs -text
# データファイル
*.sqlite filter=lfs diff=lfs merge=lfs -text
*.db filter=lfs diff=lfs merge=lfs -text
属性の連携
| 属性 | 目的 |
|---|---|
filter=lfs |
ファイル内容をLFSのclean/smudgeフィルターに通す |
diff=lfs |
LFS diffドライバーを使用(バイナリdiffではなくポインター変更を表示) |
merge=lfs |
LFSマージドライバーを使用 |
-text |
行末の正規化を防止 |
LFSのセットアップ
これらの属性が効果を発揮するには、Git LFSをインストールして初期化する必要があります:
git lfs install
git lfs track "*.psd" # .gitattributesを自動編集
git lfs trackコマンドは.gitattributesを自動的に変更しますが、構文を理解することで、より複雑なパターンを手動で設定できます。
サイズの目安
LFSに入れるべきファイルの一般的なガイドライン:
- 頻繁に変更される10MB以上のファイル → 確実にLFSを使用
- バイナリで1MB以上のファイル → LFSを検討
- 1MB未満のファイル → 通常はLFSなしで問題なし
- 任意のサイズのテキストファイル → LFSは使用しない(Gitが効率的に処理)
LFS vs 標準binary
小さなバイナリファイル(アイコン、小さな画像)には標準のbinary属性で十分です。リポジトリの肥大化が現実的な懸念となるファイルにLFSを使用してください。
ユースケース
大きなバイナリアセット(PSDファイル、3Dモデル、データセット、動画)をコードと一緒に保存するゲーム開発スタジオ、デザインチーム、データサイエンスプロジェクトはGit LFSパターンの恩恵を受けます。クローン時間を管理可能にし、リポジトリストレージコストを削減します。