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
Raw Git
Search
Scott Sanders
May 05, 2014
Programming
2
240
Raw Git
A quick presentation covering some of the basics of working with Git objects in Ruby.
Scott Sanders
May 05, 2014
Tweet
Share
More Decks by Scott Sanders
See All by Scott Sanders
Brubeck - A high-performance statsd-compatible aggregation daemon
jssjr
1
270
The Lifecycle of an Outage
jssjr
7
1.4k
Disaster Porn Lightning Talk
jssjr
0
370
Other Decks in Programming
See All in Programming
CloudNativePGを布教したい
nnaka2992
0
110
sappoRo.R #12 初心者セッション
kosugitti
0
280
Rubyで始める関数型ドメインモデリング
shogo_tksk
0
140
苦しいTiDBへの移行を乗り越えて快適な運用を目指す
leveragestech
0
1k
楽しく向き合う例外対応
okutsu
0
620
Go 1.24でジェネリックになった型エイリアスの紹介
syumai
2
280
Unity Android XR入門
sakutama_11
0
180
Honoとフロントエンドの 型安全性について
yodaka
7
1.4k
もう少しテストを書きたいんじゃ〜 #phpstudy
o0h
PRO
17
3.9k
DRFを少しずつ オニオンアーキテクチャに寄せていく DjangoCongress JP 2025
nealle
2
260
Djangoにおける複数ユーザー種別認証の設計アプローチ@DjangoCongress JP 2025
delhi09
PRO
4
460
Djangoアプリケーション 運用のリアル 〜問題発生から可視化、最適化への道〜 #pyconshizu
kashewnuts
1
260
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Unsuck your backbone
ammeep
669
57k
Making Projects Easy
brettharned
116
6k
Why Our Code Smells
bkeepers
PRO
336
57k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
The Pragmatic Product Professional
lauravandoore
32
6.4k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
12
990
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
52k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Transcript
Raw Git Underneath the porcelain and plumbing
None
What is git? • Distributed Version Control System • A
content addressable filesystem • OMG It’s full of SHA1 hashes! • With some reference logs to these hashes That’s pretty much it...
git in 15 seconds
None
None
None
None
None
None
wtf just happened?
None
so many files. ermahgerd.
None
its just a graph, really
with three main objects
“files” blobs
“directories” trees
“references to trees” commits
and a reference log
None
… because its easy let’s do this by hand
None
None
None
“blob” SP <length> NUL
None
None
None
None
None
None
None
None
None
does git work now? we made a blob!
None
None
None
NOPE!
we need our tree
“tree” SP <length> NUL <mode> <name> NUL <sha>
None
None
None
None
None
None
None
None
None
does git work yet? now we have a tree!
None
None
None
NOPE!
still need the commit
“commit” SP <length> NUL “tree <sha>” LF “author <name> <timestamp>”
LF “committer <name> <timestamp>” LF LF “<message>” LF
None
None
None
None
None
None
None
None
lol typo
None
does git work now?!? ok, we have our objects
None
None
None
NOPE!
what gives?
AKA Let’s glue it all together that pesky reflog
None
None
None
That’s it!
None
None
None
None
None
git is really simple
and extremely flexible
go build your own workflow!
and don’t be scared to look under the hood
Thanks!
github.com/jssjr @scott_sanders