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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Scott Sanders
May 05, 2014
Programming
270
2
Share
Raw Git
A quick presentation covering some of the basics of working with Git objects in Ruby.
Scott Sanders
May 05, 2014
More Decks by Scott Sanders
See All by Scott Sanders
Brubeck - A high-performance statsd-compatible aggregation daemon
jssjr
1
300
The Lifecycle of an Outage
jssjr
7
1.5k
Disaster Porn Lightning Talk
jssjr
0
400
Other Decks in Programming
See All in Programming
Reactive ❤️ Loom: A Forbidden Love Story
franz1981
2
230
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
830
Swift Concurrency Type System
inamiy
0
350
Everything Claude Code OSS詳細 — 5層構造の中身と導入方法
targe
0
160
Symfony + NelmioApiDocBundle を使った スキーマ駆動開発 / Schema Driven Development with NelmioApiDocBundle
okashoi
0
270
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
290
10年分の技術的負債、完済へ ― Claude Code主導のAI駆動開発でスポーツブルを丸ごとリプレイスした話
takuya_houshima
0
1.8k
Kubernetes上でAgentを動かすための最新動向と押さえるべき概念まとめ
sotamaki0421
3
440
의존성 주입과 모듈화
fornewid
0
110
事業会社でのセキュリティ長期インターンについて
masachikaura
0
230
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
170
ファインチューニングせずメインコンペを解く方法
pokutuna
0
270
Featured
See All Featured
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
170
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
340
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
150
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
150
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.2k
Visualization
eitanlees
150
17k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
300
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
260
Chasing Engaging Ingredients in Design
codingconduct
0
160
Automating Front-end Workflow
addyosmani
1370
200k
The Spectacular Lies of Maps
axbom
PRO
1
680
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