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
210
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
310
Other Decks in Programming
See All in Programming
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
340
デフォルトにして至高、RubyMineの大好きな所
ruzia
0
320
効率化に挑戦してみたらモバイル開発が少し快適になった話
ryunakayama
0
130
Netty Chicago Java User Group 2024-04-17
sullis
0
170
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
140
データアナリストが行うDatabricksを活用したETLの自動化事例
shinoa
0
270
Komplexe Oberflächen mit SVG und der Web Animation API
joergneumann
0
670
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
110
障害対応を起点としたもっといい開発と運用のサイクル作りのためにできること / Hatena Enginner Seminar #29
polamjag
0
120
Zero Waste, Radical Magic, and Italian Graft – Quarkus Efficiency Secrets
hollycummins
0
230
Blue/Greenデプロイの導入による 運用フローの改善
kudoas
1
370
AWS Application Composerで始める、 サーバーレスなデータ基盤構築 / 20240406-jawsug-hokuriku-shinkansen
kasacchiful
1
260
Featured
See All Featured
BBQ
matthewcrist
80
8.8k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Art, The Web, and Tiny UX
lynnandtonic
289
19k
A designer walks into a library…
pauljervisheath
200
23k
In The Pink: A Labor of Love
frogandcode
138
21k
Building Effective Engineering Teams - LeadDev
addyosmani
28
1.8k
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
Building Flexible Design Systems
yeseniaperezcruz
319
37k
Building Applications with DynamoDB
mza
88
5.6k
Into the Great Unknown - MozCon
thekraken
10
990
Thoughts on Productivity
jonyablonski
58
3.8k
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