Erratum: git は常にフル バージョンのファイルを保存します。したがって、どのリビジョンを表示しても同じように効率的です。
これは、差分 (パッチ) のみを保存する他のリビジョン システムとは対照的です。特に Cvs は、まさにこの理由から (多くのユーザーがいる大規模なリポジトリの場合)、深い履歴やトランク以外のブランチにアクセスするのが厄介でした。
参考までに、特定のバージョンの特定のファイルに便利にアクセスするには (sha/reference):
git show HEAD:full/path/to/file
head をタグ、ブランチ、または git sha (長い 16 進数) に置き換えます
パスは、ファイル システムのルートではなく、git リポジトリのベースに対する相対パスです。これについて言及するのは、何度か噛まれたからですcd
.ディレクトリに入ることができず、フルパスを指定しないことを期待しています.
ウィキペディア (すべての真実と善の本拠地) は私をバックアップします。
Git は、ファイルの各リビジョンを一意の BLOB オブジェクトとして保存します。ブロブ間の関係は、ツリー オブジェクトとコミット オブジェクトを調べることで見つけることができます。新しく追加されたオブジェクトは、zlib 圧縮を使用して全体が保存されます。
ウィキペディアが苦手な場合は、 git internals マニュアルを注意深く読んで確認してください。