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
260
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
280
The Lifecycle of an Outage
jssjr
7
1.5k
Disaster Porn Lightning Talk
jssjr
0
380
Other Decks in Programming
See All in Programming
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
140
SpecKitでどこまでできる? コストはどれくらい?
leveragestech
0
540
iOSアプリの信頼性を向上させる取り組み/ios-app-improve-reliability
shino8rayu9
0
150
Signals & Resource API in Angular: 3 Effective Rules for Your Architecture @BASTA 2025 in Mainz
manfredsteyer
PRO
0
100
詳しくない分野でのVibe Codingで困ったことと学び/vibe-coding-in-unfamiliar-area
shibayu36
3
4.4k
CSC509 Lecture 01
javiergs
PRO
1
430
2分台で1500examples完走!爆速CIを支える環境構築術 - Kaigi on Rails 2025
falcon8823
3
3.3k
実践AIチャットボットUI実装入門
syumai
7
2.5k
プログラミングどうやる? ~テスト駆動開発から学ぶ達人の型~
a_okui
0
190
CSC305 Lecture 03
javiergs
PRO
0
230
いま中途半端なSwift 6対応をするより、Default ActorやApproachable Concurrencyを有効にしてからでいいんじゃない?
yimajo
2
340
CSC509 Lecture 06
javiergs
PRO
0
240
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The Language of Interfaces
destraynor
162
25k
The Cost Of JavaScript in 2023
addyosmani
53
9k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Embracing the Ebb and Flow
colly
88
4.8k
What's in a price? How to price your products and services
michaelherold
246
12k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Git: the NoSQL Database
bkeepers
PRO
431
66k
How GitHub (no longer) Works
holman
315
140k
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