git ready

learn git one commit at a time
by Nick Quaranto, O-Show(@oshow)

特定のリビジョンからファイルを取り出す

committed 27 Feb 2009

Gitが"ブロブ, ツリー, コミット":http://gitready.com/beginner/2009/02/17/how-git-stores-your-data.html を通してどのようにデーダを保存しているかを知っているのであれば、レポジトリーから特定のリビジョンのファイルを取り出すのがちょっと面倒であることが分かると思います。あるコミットのblobの内容が欲しい場合、シンプルに”このコミットが見たい!”という訳にはいきません。その特定のコミットまでワーキングディレクトリーをリセットすることも可能ですが、あまりいい方法ではありません。

ここで便利な@git show@をタイプしてください。このコマンドはとても用途が広く、どのようなことが出来るかいくつかの説明が必要ですが、まずは本題であるこのトピックからやっていきましょう:特定のリビジョンからファイルのコンテンツを取り出します。大体このようなコマンドで行われます:

git show <treeish>:<file>

例えば、現在のHEADから4つのコミットをさかのぼったindex.htmlのファイルを見たいとします。

git show HEAD~4:index.html

もちろんコマンド内にバリッドな"treeish":http://book.git-scm.com/4_git_treeishes.html を渡すことができます。blobのSHA1も受け入れますが、あまり使われることはありません。たぶん一番の用途はファイルがどんなステートだったかを見ること、そしてそのコンテンツを新しいファイルに書く(もしくは古いのと書き換える)ことでしょう。

このコマンドのその他の用途も"manpage":http://www.kernel.org/pub/software/scm/git/docs/git-show.html でチェックしてみてください。もし他にもこのコマンドについての便利なヒントがあったらこのページからお知らせください!"submitting a tip!":/submit.html