BT

Gitを大容量バイナリファイルへと拡張するGit Large File Storage

| 作者: Sergio De Simone フォローする 17 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2015年4月22日. 推定読書時間: 2 分 |

原文(投稿日:2015/04/14)へのリンク

Git Large File Storage(LFS)は,GitHubによると,Gitワークフロー内での“オーディオサンプルやデータセット,グラフィック,ビデオなど,大容量のバイナリファイル組込み”の改善を目的とした,オープンソースのGitエクステンションである。

広く知られているようにGitは,ことバイナリファイルの格納に関しては,効率的であるとは言えない。その理由は

gitは,デフォルトでは,バイナリ資源のすべてのバージョンを圧縮して保存しようとします。数の多い場合には,これが最良な手段でないことは明らかです。

Git LFSの大容量バイナリファイル処理に対するアプローチは,それを“テキストポインタ”,つまりバイナリファイルを識別する情報を格納したテキストファイルに置き換えることにある。テキストポインタがGit内部に格納されるが,大容量ファイルそのものは[0}Git LFSサーバにHTTPS経由でホストされる。

Git LFSは,lfsコマンドを新たに追加してGitを拡張する。コマンドには次のオプションがある。

  • config: Git LFSの設定を表示する。
  • init: Git LFSを初期化する。
  • logs: git-lfsからのエラーを表示する。
  • track: 大容量ファイルをGitリポジトリに追加する。ファイル拡張子の指定が可能。
  • untrack: Git LFSからファイルを削除する。
  • push: 追跡ファイルをGit LFSのエンドポイントにプッシュする。
  • status: 変更されたGit LFSオブジェクトのパスを表示する。

大容量ファイルを既存のリポジトリに追加したければ,次のような指定をすればよい。

git lfs track "*.pdf"
git add file.pdf
git commit -m "Add design file"
git push origin master

GitHubによれば,Git LFSサーバAPIの現時点での実装は,参照実装サーバと,まだ運用されていないGitHub.comの2つのみである。GitHubはすでに,“1GBのフリーストレージと,1ヶ月1GBまでの帯域割り当て”を備えた,LFSの無償提供の計画を発表している。それ以上の割り当ては有料プランとして提供されるが,価格の詳細はまだ発表されていない。

Git LFS以前にも,Gitによる大容量のバイナリファイル操作は,git-annexを使うことで可能ではあった。git-annexは,ファイルの内容を.git/annexに格納した上で,その位置へのシンボリックリンクをGitで適切に扱うという,Git LFSと同じようなアプローチを使用したエクステンションだ。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT