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
ファイルを作らずGitにCommit!
Search
Takeru Hayasaka
September 28, 2018
Programming
340
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ファイルを作らずGitにCommit!
タガヤスその7で話したLT資料です
Takeru Hayasaka
September 28, 2018
More Decks by Takeru Hayasaka
See All by Takeru Hayasaka
Go Conference 2025: Goで体感するMultipath TCP ― Go 1.24 時代の MPTCP Listener を理解する
takehaya
10
2.9k
eBPF at Mobile Network Data Plane
takehaya
0
260
Programmable Bandwidth Management with eBPF
takehaya
2
480
eBPF Deep Dive: Architecture and Safety Mechanisms
takehaya
14
3.3k
Perlで始めるeBPF: 自作Loaderの作り方 / Getting started with eBPF in Perl_How to create your own Loader
takehaya
3
4.6k
Exploring XDP: Fundamentals and Real-World Implementations in Mobile Network Data Plane
takehaya
1
5.3k
JANOG53 LT 自作k6 Extension利用した NFVへの負荷計測手法の紹介
takehaya
0
1.2k
Wakamonog13 LT: VPPで始めるHigh Performance BGPルーター
takehaya
4
2.7k
自作パケット処理系の性能測定と可視化&改善のPDCAを回して最強のパケット処理系の作り方を学ぼう / Let's Measure the Performance of Packet Processing System with Python Tools.
takehaya
4
6.1k
Other Decks in Programming
See All in Programming
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
460
SLOをサービス品質の共通言語にするために 取り組んできたこと
wakana0222
0
500
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
890
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
190
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
360
OS アップデート対応の取り組み方がもっと共有されてほしい
andpad
0
110
関数型プログラミングのメリットって何だろう?
wanko_it
0
170
自作OSでスライド発表する
uyuki234
1
3.8k
継続モナドとリアクティブプログラミング
yukikurage
3
590
AIを活用したE2Eテスト実装効率化のあゆみ / ebisu-mobile-14-kotetu
kotetuco
0
170
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
140
1B+ /day規模のログを管理する技術
broadleaf
0
140
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
170
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
370
A designer walks into a library…
pauljervisheath
211
24k
Raft: Consensus for Rubyists
vanstee
141
7.6k
The Curious Case for Waylosing
cassininazir
1
430
Java REST API Framework Comparison - PWX 2021
mraible
34
9.5k
A Tale of Four Properties
chriscoyier
163
24k
Ruling the World: When Life Gets Gamed
codingconduct
0
280
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
290
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Transcript
ϑΝΠϧΛ࡞Βͣ(JU ʹ$PNNJU 5BLFSV)BZBTBLB !UBLFNJP*0 ʢλΨϠεͦͷ̓ʣ 1
ࣄલௐࠪ
(JUͬͨ͜ͱ͋Δਓ ڍखʂ
(JUͷϓϩڍखʂ
ϓϩͷํͪΐͬͱͷ ٳܜʹͳΓ·͢ɾɾɾ
ϓϩ͡Όͳ͍ͷͰؒҧ ͑ͨΒ͝ΊΜͳ͍͞ʼʻ
XIPBNJ w ͔͚ͨ͞Δ !UBLFNJP*0 w ౦ֶӃେֶֶ෦ w ΠϯϑΟχοτϧʔϓͰΞϧόΠτΛͯ͠Δ w
TFNBOUJDTJOGPTFDOFUXPSLʹڵຯ͕͋Γ·͢ w དྷ݄ੜ ͰͳͷͰਓੜͷઌഐํ֤Ґʹ͓͖·͠ ͯඒຯ͍͓͠ञͷҿΈ͔ͨΛืूͯ͠·͢
ΠϯϑΟχοτϧʔϓઋͰ(JU͕ ͑ΔֶੜΞϧόΠτΛืूͯ͠·͢ $.
ۙگ
(JU$IBMMFOHF ͰҐʹͳͬͨ
(JU$IBMMFOHFͱʁ w NJYJ͕ओ࠵ͯ͠Δ(JUʹؔ͢ΔίϯςετɽֶੜΦϯϦʔ w HJUϦϙδτϦʹઃ͚ͨΛνʔϜϫʔΫͰղܾ͍ͯ͠ ͘ڝٕܕͷٕज़Πϕϯτ w ҰԠશࠃ͔ΒॻྨநબͰબΕͨਓͷΈ͕ࢀՃͰ͖ΔΠ ϕϯτɽ
ڝٕڥ w қ͕̍d·Ͱ͋ΓɼϖΞͰߦ͏νʔϜઓͩͬͨ w νʔϜͦͷͰ·͞Εͨॳର໘ͷਓ w ͱΓ͋͑ͣΥʔϜΞοϓ͕ͯΒқͷ͔Β ղ͍͍ͯͬͨɽ w ղ͍ͨΒHJUIVCʹQVTI
w $*ϕʔεͰΛΦʔτδϟονͯ͠Δ
ྫʢงғؾʣ w ίϯϑϦΫτΛͨ͠Γ w ഁଛͨ͠ϑΝΠϧΛम෮ͨ͠ΓɾɾɾͳͲ w ৄ͘͠ެ։ใͰͳ͍ͷͰݴ͑ͳ͍ͷͰ͝ΊΜͳ ͍͞ʼʻ
େձͷงғؾ w ϖΞͰղ͍ͯΔͷͰNBTUFSʹQVTIGΛ͕ͪ͠
େձͷงғؾ w ͓ޓ͍ղ͖ऴΘͬͨͱࢥͬͯΔ
݁Ռ
ޙஊ wޙ͋ΔϦϙδτϦͰʮ13ͷαΠζσΧΠʯͱ ΩϨΒΕͨ wීஈΘͳ͍ΈͦͬͨͷͰઋӺΓա͝͠ ͯԬͰҰധͯ࢝͠ൃͰେֶʹΤΫετϦʔϜొ ߍΛ͢Δ͜ͱʹͳͬͨ
ຊ
ϑΝΠϧΛ࡞Βͣ(JUʹ $PNNJU
Ͱ͖ΔΜͰ͢✊
(JU0CKFDU w HJUJOJUΛͯ͠IPHF͢Δͱੜ·ΕΔHJUPCKFDUTͷதͷ w CMPC w ϑΝΠϧσʔλΛදݱͯ͠Δ w 5SFF w
ϑΥϧμߏΛදݱͯ͠Δ w $PNNJU w USFFͷࢀরͱίϛοτϢʔβʔͱλΠϜελοϓͷදݱ
$PNNJUͷ࡞ΒΕํ wίϛοτͱ͍͏ͷzCMPCzͱ͍͏σʔλ͕zUSFFz ʹඥ͍ͮͯΔ w$PNNJUPCKFDU͕USFFಉ࢜ͷίωΫγϣϯΛҙຯ ͯ͠Δ
None
CMPCͱUSFFͷؔਤ
$PNNJUͱUSFFͷؔਤ
࣮ࡍʹͬͯݟͨ
w ϑΝΠϧΛ࡞Δ w HJUJOJU͢Δ w 0CKFDUͷதQBDL JOGPͷΈ͕ݱஈ֊ʹଘࡏͯ͠Δ $mkdir fugafuga $cd
fugafuga/ $git init > Initialized empty Git repository in fugafuga/.git/ find .git/objects/ > .git/objects/ > .git/objects//pack > .git/objects//info
w HJUIBTIPCKFDUʹύΠϓͯ͠DSFBUFEBUB w PCKFDU*%Λܭࢉͯ͠ϑΝΠϧ͔ΒCMPCΛ࡞͢ΔίϚϯυ w HJUDBUpMFͰνΣοΫɽ͔֬ʹग़དྷͯΔ $ echo 'create data'
| git hash-object -w --stdin > 070f3bd01632c945394b3aac7187a9d91ca4816a $ ls $ git cat-file -p 070f > create data
w HJUVQEBUFJOEFY w XPSLJOHUSFFͷϑΝΠϧΛJOEFYʹొ͢Δ w DINPEͱಉ͡ײ͡ w UFTUUYUͱ͍͏ՍۭͷσʔλΛೖΕͯΔʢଘࡏͯ͠ͳ͍ʣ git update-index
--add --cacheinfo 100644 070f3bd01632c945394b3aac7187a9d91ca4816a test.txt
w HJUXSJUFUSFFΛ͏ w 4UBHFJOHΤϦΞΛUSFFPCKFDUʹॻ͖ग़͢͜ͱ͕Ͱ͖Δ w ·ͩUSFF͕ͳ͍ͱ͖ʹࣗಈͰJOEFY͔ΒUSFFPCKFDUΛ࡞Δ w HJUDBUpMFͰνΣοΫɽ͔֬ʹग़དྷͯΔ $ git
write-tree > c47b19c8b7a3b7724138f73e4cd53efa0f1e9595 $ git cat-file -p c47b > 100644 blob 070f3bd01632c945394b3aac7187a9d91ca4816a test.txt
w DPNNJUUSFFʹύΠϓͯ͠pSTUDPNNJU w $PNNJUΛ࡞ΔίϚϯυ w HJUDBUpMFͰνΣοΫɽ͔֬ʹग़དྷͯΔ $ echo 'first commit'
| git commit-tree c47b > 9ee76e488f2882f12e5fb15d8016e80946ff48dd $ git cat-file -p 9ee76e488f2882f12e5fb15d8016e80946ff48dd > tree c47b19c8b7a3b7724138f73e4cd53efa0f1e9595 > author TakeruHayasaka <
[email protected]
> 1538081510 +0900 > committer TakeruHayasaka <
[email protected]
> 1538081510 +0900 > first commit
·ͱΊ w ίϛοτͱ͍͏ͷzCMPCzͱ͍͏σʔλ͕zUSFFzʹඥ͍ͮͯΔ w $PNNJUPCKFDU͕USFFಉ࢜ͷίωΫγϣϯΛҙຯͯ͠Δ w (JUͱ͍͏ͷ࣮ϨΠϠʔͳදݱΛநԽͯͯ͠ීஈΒ ͍ͬͯΔɽ
w IUUQTHJUTDNDPNCPPLKBW (JU&"&&&# (JU&""&&#&" &"'& w IUUQUBLFJPIBUFOBCMPHDPNFOUSZ ϦϑΝϨϯε