Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
gitの裏側をさぐる
Search
Marina Nakagawa
April 19, 2018
520
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
gitの裏側をさぐる
新人研修で喋った内容です
Marina Nakagawa
April 19, 2018
More Decks by Marina Nakagawa
See All by Marina Nakagawa
「リーダーは意思決定する人」って本当?~ 学びを現場で活かす、リーダー4ヶ月目の試行錯誤 ~
marina1017
0
650
業務改善の面白さ~毎日更新されるビジュアルコンテンツの差分を わかりやすくするためのプロトタイプを作るまで~
marina1017
4
7.2k
通知にプレースホルダーを入れてみたら開封率がちょっと良くなった話
marina1017
1
2k
アプリ流入用広告のデータ分析基盤を整える ~FirebaseとiAd.frameworkの連携~
marina1017
2
3.7k
ABテストが上手く行かなかった話
marina1017
1
660
「開発初心者は何がわからないのか」 わからないを言語化するヒント
marina1017
2
1k
Appleのアニメーションはなぜ美しいか考える
marina1017
1
2.4k
Appleのアニメーション.pdf
marina1017
0
80
Lottieによるリッチアニメーション実装のためのAfterEffectsハマりどころ
marina1017
3
11k
Featured
See All Featured
Building an army of robots
kneath
306
46k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
250
Odyssey Design
rkendrick25
PRO
2
730
Producing Creativity
orderedlist
PRO
348
40k
Faster Mobile Websites
deanohume
310
32k
Bash Introduction
62gerente
615
220k
Writing Fast Ruby
sferik
630
63k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
650
Code Reviewing Like a Champion
maltzj
528
40k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Transcript
1 ͷཪଆΛ͙͞Δ ΞϓϦνʔϜ தສᣦಸ
2 Marina Nakagawa @marina10172013 ຊܦࡁ৽ฉࣾͷiOSΤϯδχΞ ిࢠ൛ΞϓϦɼࢴ໘ϏϡʔΞʔΞϓϦͷ։ൃ
3 git͑ΔΑ͏ʹͳ͖͚ͬͯͨͲɾɾɾ தͰԿ͕ى͍ͬͯ͜Δͷ͔Θ͔Βͳ͍ਓ ରऀ ͋ͷࣈͱจࣈͷཏྻ͕Կ͔Θ͔Βͳ͍ਓ
4 ϋογϡΛݟͯΈΑ͏ SHA-̍ϋογϡ $git log ϑΝΠϧ༰ʹج͍ͮͯܭࢉ͞ΕΔ160Ϗοτʹ ू͞ΕΔϥϯμϜͳ
5 Ͳ͏ͬͯόʔδϣϯཧ͕Ͱ͖Δͷʁ
6 ͨΊͯ͠ΈΑ͏ $mkdir test-git σΟϨΫτϦΛ࡞Δ $cd test-git test-gitͷதʹ͍Δ $ls -A
தͷϑΥϧμΛݟΔ ·ͩԿೖ͍ͬͯ·ͤΜ
7 ͨΊͯ͠ΈΑ͏ $git init Initialized empty Git repository in /Users/nakagawa/Projects/test-git/.git/
GitΛ͑ΔΑ͏ʹ͢Δ $ls -A ϑΥϧμͷதΛݟΔ .gitϑΝΠϧ͕Ͱ͖͍ͯ·͢
8 ͨΊͯ͠ΈΑ͏ $ls .git HEAD config hooks objects branches description
info refs .gitϑΝΠϧͷதΛݟͯΈ·͠ΐ͏
9 ৽͘͠ϑΝΠϧΛ࡞ͬͯaddͯ͠ΈΑ͏ $echo 'hello' > README READMEϑΝΠϧΛͭ͘Γ·͢ $git add README
READMEϑΝΠϧΛadd͠·͢ Index͕Ճ͞Εͨʂ $ls -A .git HEAD config hooks info refs branches description index objects .gitͷϑΝΠϧͷதΛݟͯΈΔ
10 ͓·͚ .git/indexͬͯԿʁ
11 .git/indexͬͯͳΜͩΖ͏ʁ $git ls-files -s ΠϯσοΫεͷΦϒδΣΫτ໊ɺmode bitsɺstage number Λදࣔͤ͞ΔίϚϯυΛ͏ ϑΝΠϧܕ
SHA-1ϋογϡ εςʔδ ϑΝΠϧ໊ 100644 ce013625030ba8dba906f756967f9e9ca394464a 0 README ϑΝΠϧܕͷ100644README͕௨ৗͷϑΝΠϧͰ͋Δ͜ͱΛࣔ͢ εςʔδϚʔδ͢Δͱ͖ͷڝ߹ͷঢ়ଶ (ڝ߹͕͋Δͱ̍Ҏ্ͷεςʔδ 0ͩͱڝ߹ͳ͠) SHA-1ϋογϡϑΝΠϧ༰ʹج͍ͮͯܭࢉ͞ΕΔ160Ϗοτʹू͞ΕΔϥϯμϜͳ ༰͕ҰจࣈͰҧ͏ͱผͷʹͳΔ catͰΈͯΑ͘Θ͔Βͳ͍ͷͰ
12 ΄Μͱʹҧ͏ʹͳΔͷʁ $echo 'hello!' > README $git add README $git
ls-files -s READMEʹॻ͍ͨHelloΛHelle!ͱʂΛͯ͠ΈΑ͏ ϑΝΠϧܕ SHA-1ϋογϡ εςʔδ ϑΝΠϧ໊ 100644 4effa19f4f75f846c3229b9dbdbad14eff362f32 0 README ͔ͨ͠ʹ༰͕ҰจࣈͰҧ͏ͱผͷʹͳΔ
13 Ͳ͏ͯ͠ϋογϡΛ͏ͷʁ όʔδϣϯཧγεςϜಉҰϑΝΠϧͷ༰ͷมԽΛ͢Δͷ͔ͩΒ ϑΝΠϧ༰͕ಉ͡Ͱ͋ΕͲΜͳڥͰ͋ͬͯಉ͡ʹͳΔ ͷ͕߹͕͍͍ ϋογϡ͕ಉ͡=ϑΝΠϧ༰͕ಉ͡
14 Ͳ͏ͬͯϋογϡΛܭࢉ͢Δͷʁ SHA-1ϋογϡ = ϔομʔใʴϑΝΠϧͷ༰ ϔομʔใͱ ϔομʔใɿ֨ೲ͢ΔΦϒδΣΫτܕͱϑΝΠϧ༰ͷαΠζ ΦϒδΣΫτܕͱ ϑΝΠϧblobɺϑΥϧμtreeͱ͍͏ΦϒδΣΫτܕʹͳΔ
15 Ͳ͏ͬͯϋογϡΛܭࢉ͢Δͷʁ ࠓճͷྫͩͱ (ΦϒδΣΫτܕ+σʔλαΠζ) Blob 7 (ϑΝΠϧ༰)σʔλ Hello! $echo 'hello!'
| git hash-object --stdin gitͷػೳͰϋογϡΛग़ͯ͠ΈΔ ಉͩ͡ʂ ͜ͷใΛͬͯSHA-1ϋογϡΛग़ͤΔ
16 ͜ͷϋογϡΛͲ͏͍ͬͯΔͷʁ .git/objectsͷதΛݟͯΈ·͠ΐ͏ $find .git/objects ϋογϡͷ࠷ॳͷೋจࣈαϒϑΥϧμ໊ɺΓͷ38จࣈϑΝΠϧ໊ͱ ͨ͠ύεʹʮblob 7 hello!ʯ͕อଘ͞Ε͍ͯΔ
17 ͜ͷϋογϡΛͲ͏͍ͬͯΔͷʁ ϋογϡͷύεΛݟͯΈ·͠ΐ͏ $cd .git/objects $vi 4e/ffa19f4f75f846c3229b9dbdbad14eff362f32 ͳʹ͜ΕɾɾʁຊʹʮHello!ʯͳͷ? zlibͰѹॖ͞Εͯ͠·͏ͨΊจࣈ֬ೝͰ͖ͳ͍ͷͰͨ͠ɾɾɾ (zlibɺσʔλͷѹॖ͓Αͼ৳ுΛߦ͏ͨΊͷϑϦʔͷϥΠϒϥϦ)
18 ͜ͷϋογϡΛͲ͏͍ͬͯΔͷʁ ѹॖͨ͠σʔλΛղಡͯ͠ΈΑ͏ $git cat-file -t 4effa -t :λΠϓʢΦϒδΣΫτܕʣΛදࣔ ϋογϡ
(ΦϒδΣΫτܕ+σʔλαΠζ) Blob 7 (ϑΝΠϧ༰)σʔλ Hello!
19 ͜ͷϋογϡΛͲ͏͍ͬͯΔͷʁ ѹॖͨ͠σʔλΛղಡͯ͠ΈΑ͏ $git cat-file -s 4effa -s :αΠζΛදࣔ ϋογϡ
(ΦϒδΣΫτܕ+σʔλαΠζ) Blob 7 (ϑΝΠϧ༰)σʔλ Hello!
20 ͜ͷϋογϡΛͲ͏͍ͬͯΔͷʁ ѹॖͨ͠σʔλΛղಡͯ͠ΈΑ͏ $git cat-file -p 4effa -p :༰Λදࣔ ϋογϡ
(ΦϒδΣΫτܕ+σʔλαΠζ) Blob 7 (ϑΝΠϧ༰)σʔλ Hello! ͪΌΜͱσʔλ͕͍Δ
21 Commitͯ͠ΈΑ͏
22 ίϛοτ͢ΔͱͲ͏ͳΔͷʁ ίϛοτͯ͠ΈΑ͏ $git commit -m "1st commit" .git/objectsͷதΛݟͯΈ·͠ΐ͏
(ݕࡧରΛϑΝΠϧͷΈʹݶఆͯ͠ݕࡧ͢ΔΦϓγϣϯΛ͚ͨfindίϚϯυ) $find .git/objects -type f ←hello ←hello! ←ίϛοτͨ͠Β ૿͑ͯΔ?!
23 ૿͑ͨ̎ͭͷϋογϡͳΜͩΖ͏ ίϛοτ͞ΕͨΦϒδΣΫτͷϋογϡͷϦετΛදࣔ͢ΔίϚϯυ $git rev-list --all --objects --format=oneline ←hello!ʹߋ৽ͨ͠ϋογϡ ←ίϛοτͨ͠Β૿͑ͨϋογϡ
24 ૿͑ͨϋογϡͷͷ̍ͭΛݟΔ(treeΦϒδΣΫτ) தΛղಡͯ͠ΈΑ͏ $git cat-file -t 34e600; git cat-file -s
34e600; git cat-file -p 34e600; (ΦϒδΣΫτܕ+σʔλαΠζ) treeΦϒδΣΫτ 34(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ ϑΝΠϧܕ ΦϒδΣΫτܕ SHA-1ϋογϡ ϑΝΠϧ໊ 100644 blob(ϑΝΠϧͷҙ) 4effa19f4f75f846c3229b9dbdbad14eff362f32 README treeΦϒδΣΫτ:34e600920700d3d2d96ff92e3c057a8d24b1f3ed
25 ૿͑ͨϋογϡͷͷ̍ͭΛݟΔ(treeΦϒδΣΫτ) தΛղಡͯ͠ΈΑ͏ $git cat-file -t 34e600; git cat-file -s
34e600; git cat-file -p 34e600; (ΦϒδΣΫτܕ+σʔλαΠζ) treeΦϒδΣΫτ 34(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ ϑΝΠϧܕ ΦϒδΣΫτܕ SHA-1ϋογϡ ϑΝΠϧ໊ 100644 blob(ϑΝΠϧͷҙ) 4effa19f4f75f846c3229b9dbdbad14eff362f32 README ↑Hello!ɹʹมߋͨ͠ίϛοτͩ treeΦϒδΣΫτ:34e600920700d3d2d96ff92e3c057a8d24b1f3ed
26 (ΦϒδΣΫτܕ+σʔλαΠζ) treeΦϒδΣΫτ 34(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ ϑΝΠϧܕ ΦϒδΣΫτܕ SHA-1ϋογϡ ϑΝΠϧ໊ 100644
blob(ϑΝΠϧͷҙ) 4effa19f4f75f846c3229b9dbdbad14eff362f32 README ̋TreeΦϒδΣΫτίϛοτ࣌ͷΠϯσοΫεใ͔Β࡞ΒΕΔ ૿͑ͨϋογϡͷͷ̍ͭΛݟΔ(treeΦϒδΣΫτ) ·ͱΊ (ΦϒδΣΫτܕ+σʔλαΠζ) Blob 7 (ϑΝΠϧ༰)σʔλ Hello! ̋TreeΦϒδΣΫτ࠷ޙʹaddͨ͠ϋογϡʹؔ࿈͚ΒΕ͍ͯΔ ͜ͷσʔλ͔Βϋογϡ͕࡞ΒΕ͍ͯΔ treeΦϒδΣΫτ:34e600920700d3d2d96ff92e3c057a8d24b1f3ed blobΦϒδΣΫτ:4effa19f4f75f846c3229b9dbdbad14eff362f32
27 ૿͑ͨϋογϡͷͷ̍ͭΛݟΔ(commitΦϒδΣΫτ) தΛղಡͯ͠ΈΑ͏ $git cat-file -t 57c0a; git cat-file -s
57c0a; git cat-file -p 57c0a; (ΦϒδΣΫτܕ+σʔλαΠζ) commit(ΦϒδΣΫτ) 195(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ TREE AUTHOR COMMITTER 34e600920700d3d2d96ff92e3c057a8d24b1f3ed Marina Nakagawa Marina Nakagawa commitΦϒδΣΫτ:57c0a4b5d3002202a7b55be6eb3523b992527d09
28 ૿͑ͨϋογϡͷͷ̍ͭΛݟΔ(commitΦϒδΣΫτ) தΛղಡͯ͠ΈΑ͏ $git cat-file -t 57c0a; git cat-file -s
57c0a; git cat-file -p 57c0a; (ΦϒδΣΫτܕ+σʔλαΠζ) commit(ΦϒδΣΫτ) 195(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ TREE AUTHOR COMMITTER 34e600920700d3d2d96ff92e3c057a8d24b1f3ed Marina Nakagawa Marina Nakagawa ↑TreeΦϒδΣΫτͰ͖ͨϋογϡͩ commitΦϒδΣΫτ:57c0a4b5d3002202a7b55be6eb3523b992527d09 CommitΦϒδΣΫτ͍ͭ୭͕ԿͷͨΊʹίϛοτͨ͠ͷ͔͕Θ͔Δ
29 ίϛοτΛ͢ΔͱTreeΦϒδΣΫτͱcommitΦϒδΣΫτ͕࡞͞ΕΔ ίϛοτ͢ΔͱͲ͏ͳΔͷʁ (ΦϒδΣΫτܕ+σʔλαΠζ) commit(ΦϒδΣΫτ) 195(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ TREE AUTHOR COMMITTER
34e600920700d3d2d96ff92e3c057a8d24b1f3ed Marina Nakagawa Marina Nakagawa (ΦϒδΣΫτܕ+σʔλαΠζ) treeΦϒδΣΫτ 34(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ ϑΝΠϧܕ ΦϒδΣΫτܕ SHA-1ϋογϡ ϑΝΠϧ໊ 100644 blob(ϑΝΠϧͷҙ) 4effa19f4f75f846c3229b9dbdbad14eff362f32 README commitΦϒδΣΫτ:57c0a4b5d3002202a7b55be6eb3523b992527d09 treeΦϒδΣΫτ:34e600920700d3d2d96ff92e3c057a8d24b1f3ed (ΦϒδΣΫτܕ+σʔλαΠζ) Blob 7 (ϑΝΠϧ༰)σʔλ Hello! blobΦϒδΣΫτ:4effa19f4f75f846c3229b9dbdbad14eff362f32
30 ͏ҰCommitͯ͠ΈΑ͏
31 ผϑΝΠϧΛͭͬͯ͘ίϛοτ͢ΔͱͲ͏ͳΔͷʁ $mkdir test $cd test $echo 'Hello world' >
sample.md $git add sample.md $git commit -m "2nd commit” testϑΥϧμΛ࡞ͬͯ Hello worldͱॻ͔Εͨsample.mdϑΝΠϧΛͭ͘Δ
32 ίϛοτ͞ΕͨΦϒδΣΫτͷϋογϡͷϦετΛදࣔ͢ΔίϚϯυ $git rev-list --all --objects --format=oneline ผϑΝΠϧΛͭͬͯ͘ίϛοτ͢ΔͱͲ͏ͳΔͷʁ ←TreeΦϒδΣΫτ ←commitΦϒδΣΫτ
33 ૿͑ͨϋογϡͷͷ̍ͭΛݟΔ(treeΦϒδΣΫτ) தΛղಡͯ͠ΈΑ͏ $git cat-file -t e3da65; git cat-file -s
e3da64; git cat-file -p e3da64; (ΦϒδΣΫτܕ+σʔλαΠζ) treeΦϒδΣΫτ 65(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ ϑΝΠϧܕ ΦϒδΣΫτܕ SHA-1ϋογϡ ϑΝΠϧɾϑΥϧμ໊ 100644 blob(ϑΝΠϧͷҙ) 4effa19f4f75f846c3229b9dbdbad14eff362f32 README 40000 tree(ϑΥϧμͷҙ) 3b903ecdee168aad30b478201b8ff9d9b20c6119 test treeΦϒδΣΫτ:e3da64ffcb70336e1313bad123247c9691846bac ←TreeΦϒδΣΫτ
34 ૿͑ͨϋογϡͷͷ̍ͭΛݟΔ(treeΦϒδΣΫτ) தΛղಡͯ͠ΈΑ͏ $git cat-file -t e3da65; git cat-file -s
e3da64; git cat-file -p e3da64; (ΦϒδΣΫτܕ+σʔλαΠζ) treeΦϒδΣΫτ 65(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ ϑΝΠϧܕ ΦϒδΣΫτܕ SHA-1ϋογϡ ϑΝΠϧɾϑΥϧμ໊ 100644 blob(ϑΝΠϧͷҙ) 4effa19f4f75f846c3229b9dbdbad14eff362f32 README 40000 tree(ϑΥϧμͷҙ) 3b903ecdee168aad30b478201b8ff9d9b20c6119 test treeΦϒδΣΫτ:e3da64ffcb70336e1313bad123247c9691846bac ←TreeΦϒδΣΫτ ͜ͷTreeΦϒδΣΫτͰ̎ͭͷSHA-1ϋογϡΛอ͍࣋ͯ͠Δ
35 ૿͑ͨϋογϡͷͷ̍ͭΛݟΔ(treeΦϒδΣΫτ) தΛղಡͯ͠ΈΑ͏ $git cat-file -t e3da65; git cat-file -s
e3da64; git cat-file -p e3da64; (ΦϒδΣΫτܕ+σʔλαΠζ) treeΦϒδΣΫτ 65(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ ϑΝΠϧܕ ΦϒδΣΫτܕ SHA-1ϋογϡ ϑΝΠϧɾϑΥϧμ໊ 100644 blob(ϑΝΠϧͷҙ) 4effa19f4f75f846c3229b9dbdbad14eff362f32 README 40000 tree(ϑΥϧμͷҙ) 3b903ecdee168aad30b478201b8ff9d9b20c6119 test treeΦϒδΣΫτ:e3da64ffcb70336e1313bad123247c9691846bac ←TreeΦϒδΣΫτ ࣍͜ΕΛ͠ΒͯΈ·͢
36 ૿͑ͨϋογϡͷͷ̍ͭΛݟΔ(treeΦϒδΣΫτ) (ΦϒδΣΫτܕ+σʔλαΠζ) treeΦϒδΣΫτ 65(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ ϑΝΠϧܕ ΦϒδΣΫτܕ SHA-1ϋογϡ ϑΝΠϧɾϑΥϧμ໊
100644 blob(ϑΝΠϧͷҙ) 4effa19f4f75f846c3229b9dbdbad14eff362f32 README 40000 tree(ϑΥϧμͷҙ) 3b903ecdee168aad30b478201b8ff9d9b20c6119 test treeΦϒδΣΫτ:e3da64ffcb70336e1313bad123247c9691846bac தΛղಡͯ͠ΈΑ͏ $git cat-file -t 3b903; git cat-file -s 3b903; git cat-file -p 3b903; (ΦϒδΣΫτܕ+σʔλαΠζ) treeΦϒδΣΫτ 37(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ ϑΝΠϧܕ ΦϒδΣΫτܕ SHA-1ϋογϡ ϑΝΠϧɾϑΥϧμ໊ 100644 blob(ϑΝΠϧͷҙ) 802992c4220de19a90767f3000a79a31b98d0df7 sample.md treeΦϒδΣΫτ:3b903ecdee168aad30b478201b8ff9d9b20c6119
37 ૿͑ͨϋογϡͷͷ̍ͭΛݟΔ(treeΦϒδΣΫτ) (ΦϒδΣΫτܕ+σʔλαΠζ) treeΦϒδΣΫτ 65(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ ϑΝΠϧܕ ΦϒδΣΫτܕ SHA-1ϋογϡ ϑΝΠϧɾϑΥϧμ໊
100644 blob(ϑΝΠϧͷҙ) 4effa19f4f75f846c3229b9dbdbad14eff362f32 README 40000 tree(ϑΥϧμͷҙ) 3b903ecdee168aad30b478201b8ff9d9b20c6119 test treeΦϒδΣΫτ:e3da64ffcb70336e1313bad123247c9691846bac தΛղಡͯ͠ΈΑ͏ $git cat-file -t 3b903; git cat-file -s 3b903; git cat-file -p 3b903; (ΦϒδΣΫτܕ+σʔλαΠζ) treeΦϒδΣΫτ 37(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ ϑΝΠϧܕ ΦϒδΣΫτܕ SHA-1ϋογϡ ϑΝΠϧɾϑΥϧμ໊ 100644 blob(ϑΝΠϧͷҙ) 802992c4220de19a90767f3000a79a31b98d0df7 sample.md treeΦϒδΣΫτ:3b903ecdee168aad30b478201b8ff9d9b20c6119 ࣍͜ΕΛ͠ΒͯΈ·͢
38 ૿͑ͨϋογϡͷͷ̍ͭΛݟΔ(blobΦϒδΣΫτ) தΛղಡͯ͠ΈΑ͏ $git cat-file -t 80299; git cat-file -s
80299; git cat-file -p 80299; (ΦϒδΣΫτܕ+σʔλαΠζ) treeΦϒδΣΫτ 12(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ Hello world blobΦϒδΣΫτ:802992c4220de19a90767f3000a79a31b98d0df7 (ΦϒδΣΫτܕ+σʔλαΠζ) treeΦϒδΣΫτ 37(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ ϑΝΠϧܕ ΦϒδΣΫτܕ SHA-1ϋογϡ ϑΝΠϧɾϑΥϧμ໊ 100644 blob(ϑΝΠϧͷҙ) 802992c4220de19a90767f3000a79a31b98d0df7 sample.md treeΦϒδΣΫτ:3b903ecdee168aad30b478201b8ff9d9b20c6119
39 ૿͑ͨϋογϡͷͷ̍ͭΛݟΔ(blobΦϒδΣΫτ) தΛղಡͯ͠ΈΑ͏ $git cat-file -t 80299; git cat-file -s
80299; git cat-file -p 80299; (ΦϒδΣΫτܕ+σʔλαΠζ) treeΦϒδΣΫτ 12(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ Hello world blobΦϒδΣΫτ:802992c4220de19a90767f3000a79a31b98d0df7 (ΦϒδΣΫτܕ+σʔλαΠζ) treeΦϒδΣΫτ 37(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ ϑΝΠϧܕ ΦϒδΣΫτܕ SHA-1ϋογϡ ϑΝΠϧɾϑΥϧμ໊ 100644 blob(ϑΝΠϧͷҙ) 802992c4220de19a90767f3000a79a31b98d0df7 sample.md treeΦϒδΣΫτ:3b903ecdee168aad30b478201b8ff9d9b20c6119 ༰Λมߋͨ͠σʔλ͕Ͱ͖ͯͨ
40 treeΦϒδΣΫτͱblobΦϒδΣΫτͷؔੑΛ·ͱΊΔͱ blobΦϒδΣΫτ:4effa19f4f75f846c3229b9dbdbad14eff362f32 1st commit
41 treeΦϒδΣΫτͱblobΦϒδΣΫτͷؔੑΛ·ͱΊΔͱ blobΦϒδΣΫτ:4effa19f4f75f846c3229b9dbdbad14eff362f32 Hello!ͱ͍͏มߋͳͷͶʂ 1st commitͷঢ়ଶΛ෮ݩͰ͖Δ 1st commit
42 treeΦϒδΣΫτͱblobΦϒδΣΫτͷؔੑΛ·ͱΊΔͱ blobΦϒδΣΫτ:4effa19f4f75f846c3229b9dbdbad14eff362f32 2st commitͷঢ়ଶΛ෮ݩͰ͖Δ 2nd commit
43 TreeΦϒδΣΫτ͑͞Θ͔Ε ͷϑΝΠϧ·ͰͨͲΓண͚Δ
44 TreeΘ͔͚ͬͨͲ CommitԿͷҙຯ͕͋Δͷʁ
45 ίϛοτ͞ΕͨΦϒδΣΫτͷϋογϡͷϦετΛදࣔ͢ΔίϚϯυ $git rev-list --all --objects --format=oneline ←commitΦϒδΣΫτ ೋͭͷίϛοτΦϒδΣΫτΛݟͯΈΑ͏ தΛղಡͯ͠ΈΑ͏
$git cat-file -t e3da65; git cat-file -s e3da64; git cat-file -p e3da64;
46 ೋͭͷίϛοτΦϒδΣΫτΛݟͯΈΑ͏ தΛղಡͯ͠ΈΑ͏ $git cat-file -t cff23; git cat-file -s
cff23; git cat-file -p cff23; (ΦϒδΣΫτܕ+σʔλαΠζ) commit(ΦϒδΣΫτ) 243(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ TREE PARENT AUTHOR COMMITTER e3da64ffcb70336e1313bad123247c9691846bac 57c0a4b5d3002202a7b55be6eb3523b992527d09 Marina Nakagawa Marina Nakagawa commitΦϒδΣΫτ:cff23168b95204aa210c34f95394cafc00db847b
47 ೋͭͷίϛοτΦϒδΣΫτΛݟͯΈΑ͏ தΛղಡͯ͠ΈΑ͏ $git cat-file -t cff23; git cat-file -s
cff23; git cat-file -p cff23; (ΦϒδΣΫτܕ+σʔλαΠζ) commit(ΦϒδΣΫτ) 243(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ TREE PARENT AUTHOR COMMITTER e3da64ffcb70336e1313bad123247c9691846bac 57c0a4b5d3002202a7b55be6eb3523b992527d09 Marina Nakagawa Marina Nakagawa commitΦϒδΣΫτ:cff23168b95204aa210c34f95394cafc00db847b ←͋ΕʁParent͕͍Δ
48 ೋͭͷίϛοτΦϒδΣΫτΛݟͯΈΑ͏ தΛղಡͯ͠ΈΑ͏ $git cat-file -t cff23; git cat-file -s
cff23; git cat-file -p cff23; (ΦϒδΣΫτܕ+σʔλαΠζ) commit(ΦϒδΣΫτ) 243(σʔλαΠζ) (ϑΝΠϧ༰)σʔλ TREE PARENT AUTHOR COMMITTER e3da64ffcb70336e1313bad123247c9691846bac 57c0a4b5d3002202a7b55be6eb3523b992527d09 Marina Nakagawa Marina Nakagawa commitΦϒδΣΫτ:cff23168b95204aa210c34f95394cafc00db847b ←̍ͭલͷίϛοτΛࣔ͢
49 CommitΦϒδΣΫτͱTreeΦϒδΣΫτΛ·ͱΊΔͱ 2nd commit 1st commit ࠷৽ͷίϛοτ͑͞Θ͔Ε࠷ॳͷίϛοτ·Ͱશͯͷྺ࢙Λ͑Δ
50 CommitΦϒδΣΫτͱTreeΦϒδΣΫτΛ·ͱΊΔͱ 2nd commit 1st commit ͦΕͧΕͷίϛοτTreeΦϒδΣΫτͷใΛ͍࣋ͬͯΔͨΊ ͷϑΝΠϧ·ͰͨͲΓண͚Δ
51 Commitͱ ̋̍ͭલͷίϛοτͱϓϩδΣΫτϧʔτͷtreeΦϒδΣΫτΛͬͯΔ ̋authorɾcommitterɾίϛοτϝοηʔδͷใ͕Ճ͞Εͨͷ
52 Gitͷཪଆࢀߟࢿྉ ΄΅͜ΕΛৄࡉʹௐͨͷͰ͢