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
250
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
370
Other Decks in Programming
See All in Programming
漸進。
ssssota
0
1.2k
TVer iOSチームの共通認識の作り方 - Findy Job LT iOSアプリ開発の裏側 開発組織が向き合う課題とこれから
techtver
PRO
0
710
TypeScript エンジニアが Android 開発の世界に飛び込んだ話
yuisakamoto
6
960
UPDATEがシステムを複雑にする? イミュータブルデータモデルのすすめ
shimomura
0
220
テスト分析入門/Test Analysis Tutorial
goyoki
12
2.7k
TypeScript を活かしてデザインシステム MCP を作る / #tskaigi_after_night
izumin5210
4
480
CQRS/ESのクラスとシステムフロー ~ RailsでフルスクラッチでCQRSESを組んで みたことから得た学び~
suzukimar
0
190
少数精鋭エンジニアがフルスタック力を磨く理由 -そしてAI時代へ-
rebase_engineering
0
130
List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfold' relates to 'iterate'"
philipschwarz
PRO
0
140
Parallel::Pipesの紹介
skaji
2
870
Cursor Meetup Tokyo ゲノミクスとCursor: 進化と制約のあいだ
koido
1
320
マテリアルって何者?RealityKitで扱うマテリアル入門
nao_randd
0
140
Featured
See All Featured
How to Ace a Technical Interview
jacobian
276
23k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Scaling GitHub
holman
459
140k
Product Roadmaps are Hard
iamctodd
PRO
53
11k
Bash Introduction
62gerente
614
210k
The Invisible Side of Design
smashingmag
299
50k
GraphQLとの向き合い方2022年版
quramy
46
14k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
It's Worth the Effort
3n
184
28k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
How STYLIGHT went responsive
nonsquared
100
5.6k
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