by shigemk2

当面は技術的なことしか書かない

Gitのobjectについて

gitのcommit objectの中身 - はこべブログ ♨

概要

Git - Gitオブジェクト

tree----tree----blob
     |__blob

コミットログのハッシュ

$ git log --oneline
65296da Fix function name
2fbebba インタプリタ mov統合
51a00a2 逆アセンブラを対応させた
4175c99 Fix mov
8b30038 Fix function name
a49655f プログラムカウンターを変える レジスタ代入部分の共通化

ファイルツリー

treeにはcommitが発生した時点でのファイルツリーを再現するための情報が入っています

commitの内容を表示する

$ git cat-file commit 65296da
tree 6dbaade604af672023d09fcae7f99d4a866c4cfa
parent 2fbebba2eba2b7883c407ff39c22ab9935d2020a
author shigemk2 <xxxxxx> 1395142679 +0900
committer shigemk2 <xxxxxxx> 1395142679 +0900

Fix function name

git ls-tree

treeを表示する。blobは普通のファイルで、treeはディレクトリ。

$ git ls-tree 2fbebba2eba2b7883c407ff39c22ab9935d2020a
100644 blob fdd7af05e4bc770d31eb86d35c0f36d82cc81071    README.md
040000 tree 17cb33f0f7997dcd2bcf58436647953dd29836e1    bin
040000 tree 5d4d7808d94e3f6b20aa1004fbffb790a9b62f5c    pdp11-1
040000 tree 8ddb232b8f3a000cc5cbdebb96c9cbe98be1c7d4    pdp11-10
040000 tree ef3b3716f2ca6b577522e2007a32f150ac21e648    pdp11-2
040000 tree 518ca631e7802b7feab310fec1b48def25d24de3    pdp11-3
040000 tree 7b6bd80599c7de08e7b4c331bac056282a5405f8    pdp11-4
040000 tree e8190adc04bfa3c51213f0aa14b19e37d717f899    pdp11-5
040000 tree 01b9949a2c66d476a5424daad6b4f09a4cf528ca    pdp11-6
040000 tree 4232de3f4fa699c243078524508fff533c92afcc    pdp11-7
040000 tree d0ebede863d57c4b976bec57d78ce718b0a62475    pdp11-8
040000 tree b495df9b76abd51c674be3dbbd451b8eb9b72ab3    pdp11-9

blob

ファイルのオブジェクトはblobと呼ばれる。

$ git cat-file blob fdd7af05e4bc770d31eb86d35c0f36d82cc81071