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
220
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
0
270
The Lifecycle of an Outage
jssjr
7
1.4k
Disaster Porn Lightning Talk
jssjr
0
340
Other Decks in Programming
See All in Programming
Go1.23で入った errorsパッケージの小さなアプデ
kuro_kurorrr
2
400
Method Swizzlingを行うライブラリにおけるマルチモジュール設計
yoshikma
0
120
What you can do with Ruby on WebAssembly
kateinoigakukun
0
170
Understand the mechanism! Let's do screenshots tests of Compose Previews with various variations / 仕組みから理解する!Composeプレビューを様々なバリエーションでスクリーンショットテストしよう
sumio
3
840
GraphQL あるいは React における自律的なデータ取得について
quramy
11
3k
Increased Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
400
Some more adventure of Happy Eyeballs
coe401_
2
190
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
4
90k
Patched fetch did not work
quramy
4
400
rbs-inlineを導入してYARDからRBSに移行する
euglena1215
1
290
Rubyとクリエイティブコーディングの輪の広がり / The Growing Circle of Ruby and Creative Coding
chobishiba
1
270
The Sequel to a Dream of Ruby Parser's Grammar
ydah
1
220
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
294
20k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
123
18k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
326
21k
YesSQL, Process and Tooling at Scale
rocio
167
14k
Automating Front-end Workflow
addyosmani
1365
200k
Agile that works and the tools we love
rasmusluckow
327
20k
Done Done
chrislema
180
16k
KATA
mclloyd
27
13k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
27
7.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
225
22k
The World Runs on Bad Software
bkeepers
PRO
64
11k
The Invisible Customer
myddelton
119
13k
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