Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
git入門
Search
uzimaru0000
September 26, 2020
Technology
380
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
git入門
Zli × エキサイト 合同LT
https://zli.connpass.com/event/188279/
uzimaru0000
September 26, 2020
Transcript
35 slides
git入門 うじまる
自己紹介 - B4 - うじまる - Webフロントエンド - TypeScript -
Elm - 最近Rustをやってます。 - Twitter - @uzimaru0000 - GitHub - @uzimaru0000
みなさんgitは使ってますか?
使ってますね
ありがとうございました!
終わりません♂
gitの仕組み分かりますか?
gitの仕組み入門 うじまる
もくじ - gitって? - gitの仕組み - `git add` を使わないで `git
add` をしてみる
gitって?
gitって? Git(ギット[2][3][4])は、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。 (wikipediaより) - 分散型バージョン管理システム - Linux カーネルの開発者のリーナスさんが作ったシステム
gitって? Q. 情報はどこに保存されてる? A. `.git` ディレクトリ以下
gitって? - HEAD - `git push origin HEAD` とかで参照される
- index - いわゆるstaging - objects/ - gitのobjectの保存先 - refs/ - branchとかtagsの保存先
gitって? - HEAD - `git push origin HEAD` とかで参照される
- index - いわゆるstaging - objects/ - gitのobjectの保存先 - refs/ - branchとかtagsの保存先
git-object - gitは3種類のobjectによって構成されている - commit - tree - blob -
それぞれ、commit・ディレクトリ・ファイルに対応している - sha1で固有のIDが割り当てられる - zlibで圧縮されている
git-object フォーマットは以下のような感じ - このobjectのtype - bodyのbytes数 - body(objectのtypeによって中身は変わる)
git-object - commit - 親のcommit, ルートのtree, commitをした人などの情報が記録されている - tree
- ディレクトリの情報が記録されている - 1つ以上のtreeやblobを持っている - blob - ファイルの情報が記録されている - `git add` した時点のファイルのスナップショット ※ git は 差分 ではなく ファイルの中身すべて を保存している
git-object sha1の作られ方 - objectの中身を使う
git-object 結果が違う・・・・ 原因:object fileはzlibで圧縮されている
git-object `zlib_decompress` を使ってファイルを解凍 同じ結果になった!!
git-object - sha1の値がそのままpathになる - 上2桁がディレクトリで残りがファイル名 コンテンツからsha1が生成されるので 同じ内容のものは重複しない!
HEADとrefs/ - HEADには現在のHEADのpathが書いてる - .git/refs/heads/master が今のHEAD(ブランチ)
HEADとrefs/ - HEADの値を使って `refs/` の値を見てみる
gitの仕組み
git-objectの関係性
git-objectの関係性
git-objectの関係性
git addをしてみる
gitのコマンド - git add や git commit などのコマンド - これらは「磁器コマンド」と呼ばれる
- git cat-file や git hash-object などのコマンド - これらは「配管コマンド」と呼ばれる 配管コマンドを組み合わせれば、磁器コマンド相当のことができる!! (昔はそうしていたみたい)
git addをしてみる $ git hash-object - ファイルをblobにするためのコマンド - `-w` オプションをつけることで保存もしてくれる
$ git update-index - indexをupdateしてくれる - optionがちょっと多い
git addをしてみる
DEMO
まとめ - git の仕組みは意外とシンプル - git-objectのパースと配管コマンドの実装が出来たらgitは作れる
None
ありがとうございました!
More Decks by uzimaru0000
See All by uzimaru0000
OGPを使いたい
uzimaru0000
0
190
Webフロントエンド入門
uzimaru0000
1
470
WebフロントエンジニアはOSの夢を見る
uzimaru0000
0
370
BrainFuckをつくった
uzimaru0000
0
600
Elmで作るCLI
uzimaru0000
0
150
Blogを作った話 -Zli x DeNA-
uzimaru0000
1
230
Compression Vue App
uzimaru0000
0
140
好きなライブラリ_OSS
uzimaru0000
0
250
Other Decks in Technology
See All in Technology
The Author Pays
hiccupps
0
220
Context Ontology Accelerator 入門 (業務データの意味を、AI エージェントに渡す)
inariku
PRO
3
680
仕様と現実の間で落とし所を探るリモートMCPの認証・認可 — Sansanの認証基盤における課題と実践
sansantech
PRO
2
300
An Introduction to Context Ontology Accelerator (teaching AI agents what your data means)
inariku
PRO
1
260
Linuxネットワークスタック進化の軌跡: 過去10年の歩みと最新トレンド
orimanabu
4
680
Kiro 入門 (1 つのエージェントを、どの画面からでも) | 目指せ Kiro マスター 01
inariku
PRO
6
1.8k
Datadog の権限統制 〜Org 統合に向けて調べた注意点 / JDDUG-Meetup_24
visional_engineering_and_design
1
140
Go初心者のクラウドエンジニアが、デプロイを通して旨味を知っていく話
ryudai
1
210
Kiro IDE 入門 (画面の各部から、頼み方、任せ方、戻し方まで) | 目指せ Kiro マスター 02
inariku
PRO
4
240
長い仕事を任せる (Workflows、クラウドセッション、Kiro Web) | 目指せ Kiro マスター 10
inariku
PRO
3
200
プロダクションコードにおける encoding/json から encoding/json/v2 へのスムーズな移行
sansantech
PRO
1
430
契約書SaaSにAIエージェントを組み込む
sansantech
PRO
0
130
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Everyday Curiosity
cassininazir
0
400
Designing Experiences People Love
moore
143
24k
Discover your Explorer Soul
emna__ayadi
2
1.3k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
350
Google's AI Overviews - The New Search
badams
0
1.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
660
Code Reviewing Like a Champion
maltzj
529
40k
What's in a price? How to price your products and services
michaelherold
247
13k
Documentation Writing (for coders)
carmenintech
77
5.6k