Memento memo.

Today I Learned.

Git Large File Storage (LFS)を使う

会社のSlackでGit Large File Storage (LFS)なるものを知ったので適当に使ってみました。

git-lfs.github.com

Git LFSとは?

Gitの拡張です。 画像とか音声みたいなLarge File(BLOB)をGitで管理しようとめちゃくちゃ重くなってきます。 直接BLOBをいじらずにポインタをテキストファイルとしてgitで管理し、BLOBの本体は別サーバに保存してるみたいです。 本体のリポジトリがすっきりする&fetch, cloneが高速になるのがメリットです。

https://git-lfs.github.com/images/graphic.gif

Install

$ brew install git-lfs
$ git lfs install

使い方

https://media.githubusercontent.com/media/shotat/lfs-sandbox/master/space_cat.jpg

とりあえず適当な画像(space_cat.jpg)をリポジトリに配置して試しました。 DocのGetting Startedを参考に。

# track対象のパス確認
$ git lfs track
Listing tracked paths

# track対象に"*.jpg"追加
$ git lfs track "*.jpg"
Tracking *.jpg

# track対象のパス確認
$ git lfs track
Listing tracked paths
    *.jpg (.gitattributes)

# .gitattributesに設定が追記されている
$ cat .gitattributes
*.jpg filter=lfs diff=lfs merge=lfs -text

# あとは普通
$ git add .
$ git ci -m 'aaa'
$ git push

これだけなので超簡単です。

試したやつ

space_catを回転させてPR出してます。プレビューが楽しい。

github.com

仕様

このあたりに書いてあったのであとで読みたいやつです。

github.com

エンジニアのためのGitの教科書 実践で使える! バージョン管理とチーム開発手法 (WEB Engineer’s Books)

エンジニアのためのGitの教科書 実践で使える! バージョン管理とチーム開発手法 (WEB Engineer’s Books)