Git Large File Storage (LFS) に対応しました

tracpath (トラックパス) は Git Large File Storage (LFS)に対応いたしました。tracpath でこれから作成する Git リポジトリはもちろん Git LFS 機能を利用できますし、すでに作成済みの Git リポジトリでも利用することができます。

また、Git LFS ファイルロック機能に対応しています。

Git LFS について

Git リポジトリは差分があまり意味をなさないバイナリファイルの扱いを得意とはしていません。特にファイルサイズが大きいとリポジトリ自体のサイズが肥大化し git {clone,fetch,pull}などの操作に時間を要するようになります。

Git LFS ではそれらのファイルを別管理するように指示すること (git lfs track '*.ext') でリポジトリとは別の領域にファイルの実体を保存するようになり、リポジトリの肥大化を避けるようになっています。リポジトリにはファイルの実体の代わりにポインタになるファイルが登録され、この内容に基づいて git-lfs コマンドがファイルの実体を自動的に取り出してくれます。

Git LFS 対応クライアント

Debian, Ubuntu, RHEL/CentOS, Mac OS X などはhttps://github.com/git-lfs/git-lfs/wiki/Installationを参照してください。

Git LFS チュートリアル

ここではコマンドライン版 git での手順を説明します。

1. git-lfs コマンドのインストール

上記の対応クライアントからインストールを行ってください。

2. Git LFS 初期設定を行う

Git LFS 機能に必要な初期設定を行うために git lfs install を実行します。デフォルトでは ~/.gitconfig に設定が追加されます。そのため、この操作は一度だけ実施すれば問題ありません。

3. リポジトリ作成後 git clone を行う

Git リポジトリを作成後 git clone を行います。

4. Git LFS の対象ファイルを指定する

ここでは Excel ファイルを対象になるようにしてみます。

このコマンドにより .gitattributes ファイルが変更されるので、git add して git commit します。

あとは git-lfs コマンドが必要なときに処理を行ってくれます。

5. LFS 対象ファイルをコミット・プッシュする

Excel ファイルを追加してコミットします。

ここで、コミットした内容を見てみます。

コミット内容を見ると Excel ファイルの代わりに version https://git-lfs.github.com/spec/v1 で始まる小さなファイルになっているのが確認できます。これがポインタファイルです。

これでプッシュしてみます。

Git LFS: (1 of 1 files) 164.18 KB / 164.18 KB という出力がありますが、これが git-lfs コマンドによりファイルの実体を送信しているものです。

6. この状態から git clone を行う

このリポジトリが Git LFS 機能でファイル管理を行っている状態になっています。ここから別ディレクトリなどで git clone を行ってみます。

Downloading カスタムクエリ.xlsx という出力の通り、Git LFS 管理になっているファイルも自動的に取得されるようになっています。


リンク

Git/GitLargeFileStorageに対応しました (last edited 2018-01-29 07:45:09 by hayashida)