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運用の考え方
Search
Hisateru Tanaka
August 20, 2019
Technology
21
5.8k
これならしんどくないGit運用の考え方
8/20(火) Git運用勉強会 presented by GeekHub (大阪)
発表スライドです
Hisateru Tanaka
August 20, 2019
Tweet
Share
More Decks by Hisateru Tanaka
See All by Hisateru Tanaka
哲学史とモデリング
tanakahisateru
4
560
オブジェクト指向宗教史
tanakahisateru
31
16k
ほげ言語にあってPHPにない機能
tanakahisateru
6
2.6k
君たちはどうプログラミングするか
tanakahisateru
12
1.6k
デバッグ用ロガーの注入どうする?
tanakahisateru
2
520
アンドキュメンテッド ちょうぜつソフトウェア 設計入門 「オブジェクト指向に定義はない」のか?
tanakahisateru
25
9.1k
ちょうぜつ改め21世紀ふつうのソフトウェア設計
tanakahisateru
14
8.1k
まんがのかきかた
tanakahisateru
8
630
10秒で衝突するUUIDの作り方
tanakahisateru
40
39k
Other Decks in Technology
See All in Technology
[I/O Extended Android 2024] What`s new in Android 2024
kyeongwan
0
220
テスト・設計研修【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
170
CTOから見た事業開発とプロダクト開発 / My Perspective on Business and Product Development as CTO
keisuke69
4
960
DevIO2024_レガシー運用からの脱却 -クラウド活用の実践事例とベストプラクティス-
jun2882
0
210
Docker互換のセキュアなコンテナ実行環境「Podman」超入門
devops_vtj
6
3.2k
データベース研修 分析向けSQL入門【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
110
AWSで”最小権限の原則”を実現するための考え方 /20240722-ssmjp-aws-least-privilege
opelab
10
4.3k
シフトレフトで挑む セキュリティの生産性向上
sekido
PRO
0
270
AutomatedLabを使って内部ペンテストを勉強しよう! -やられ社内ネットワークの自動構築-
n_etupirka
1
610
「我々はどこに向かっているのか」を問い続けるための仕組みづくり / Establishing a System for Continuous Inquiry about where we are
daitasu
0
170
累計ダウンロード数1億8000万を超えるアプリケーションプラットフォームのレガシーシステム脱却とモダン化への道
kmitsuhashi
0
120
フルリモートワークはエンジニアの夢を叶えたか? #cm_odyssey
mamohacy
2
600
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
17
1.5k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Fantastic passwords and where to find them - at NoRuKo
philnash
42
2.7k
Making Projects Easy
brettharned
111
5.7k
Rails Girls Zürich Keynote
gr2m
93
13k
How GitHub Uses GitHub to Build GitHub
holman
471
290k
What the flash - Photography Introduction
edds
65
11k
Speed Design
sergeychernyshev
9
270
Music & Morning Musume
bryan
43
5.9k
YesSQL, Process and Tooling at Scale
rocio
166
14k
Designing for humans not robots
tammielis
247
25k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
20
7.2k
Transcript
͜ΕͳΒ͠ΜͲ͘ͳ͍ (JUӡ༻ͷߟ͑ํ ʙ͘͠͠ͳ͍ίπͪΌΜͱΔ͜ͱʙ
ͨͳ͔ͻͯ͞Δ @tanakahisateru ॴ
ͬͪ͜ͷ΄͏͕༗໊͔
͋͘·ͰɺฐࣾͰ͏·͍ͬͯ͘Δߟ͑ํͰ͢
ӡ༻͢Δ͏͑Ͱຊʹ͍͠ͷԿ͔ ❌ػೳͷशಘ ⭕ΠϨΪϡϥʔରԠ ⭐ҙຯཧղͷڞ༗
P0ʮΈΜͳͰ(JUͷػೳΛϚελʔ͍ͯ͜͠ͳͦ͏ʯ ❌ ʮͰ͖ΔʯʮݴΘΕ͍ͯΔʯ͔Βͱ͍ͬͯɺͦΕΒ͕ શͯʮ͖͢ʯ͜ͱͱ͔͗Βͳ͍ɻ
໎৴ ͱΈͳ͍ͯ͠Δ͜ͱ w ࢄཧͳͷͰத৺ਓ͕͍ͳͯ͘Α͍ w ίϛοτখࠁΈͰ͋Ε͋Δ΄ͲΑ͍ w ཤྺվมʹͳΔͷͰQVTIGΛ͍͚ͯ͠ͳ͍Gةݥͩ w NBTUFSʹίϛοτΛੵΜͰ͍͚ͳ͍
w ৗʹNFSHFOP⒎ͰϚʔδཤྺΛ͖͢ w ͯ͢ͷίϛοτͱϒϥϯνΛ՝ཧνέοτʹؔ࿈͚
w བྷΈ߹ͬͨෳࡶͳίϛοτάϥϑɺ͍͍ͬͨ୭͕ಡΊΔͷ͔ w ʮमਖ਼ΕͿΜʯ͕ผʹͳ͍ͬͯΔίϛοτɺ᠘Ͱ͔͠ͳ͍ w ՃՃͰϋϦϘςʹͳͬͨNBTUFSͷίʔυΛݟͯ४ڌ͢Δ Ұ؏ੑ͕ w ػೳΛशಘ͢Δͷ͕ʮ͍͠ʯͷͰͳ͘ɺͦͷػೳͰԿΛ͢Δ͔ w
ʮҙຯΒΜ͕ϧʔϧ͔ͩΒकΕʯͱԡ͚͠ΒΕΔͷ͕ʮ͠ ΜͲ͍ʯͷਖ਼ମ ͳΜ͔ͩཧͰ͖ͦ͏ͩͧͱ͍͍ؾʹͳ͍ͬͯΔ ͚ͩ͡Όͳ͍ͷ͔ɺΑ͘ߟ͑ͯΈΑ͏ɻ
ਅ࣮ ͍ͬ͡͞ʹ͏·͘ճ͍ͬͯΔߟ͑ w શͯͷมߋΛϨϏϡʔͰ͖ɺΦʔφʔγοϓΛ࣋ͬͨϚʔδϟʔ͕ඞཁ w ࡞ۀதͷࢼߦࡨޡཁΒͳ͍ɻNBTUFSʹର͢Δมߋͷ࠷ऴܾఆ͚ͩΑͤ͜ w ࡞ۀϒϥϯνݸਓͰઐ༗ɻίϛοτվมGܴɻগ͠ͰϨϏϡʔ͢͠ ͘͢Δ w
Ϧʔυ։ൃऀৗʹNBTUFSΛϦϑΝΫλͯ͠ΫϦʔϯʹ͓ͯ͘͠ νέο τෆཁ w جຊNBTUFSʹྻੵΈ͢Δɻਓؒذ͕ۤखɻίϯϑϦΫτϦϕʔε Ͱղফ͓ͯ͘͠ w ࡞ۀͷओͱͳΔίϛοτͷΈɺ՝ཧͱؔ࿈͚Δɻաͳใίϛϡ χέʔγϣϯϊΠζʹͳΔ
ͦΕͧΕൺͯΈΔ
1 ࢄཧͳͷͰத৺ਓ͕͍ͳͯ͘Α͍ WT શͯͷมߋΛϨϏϡʔͰ͖ɺΦʔφʔγοϓΛ࣋ͬͨϚʔδϟʔ͕ඞཁ ୭ʹฉ͍ͨΒ͍͍͔͙͢Θ͔Δ͠ΜͲ͘ͳ͍ ϦʔμʔҎ֎ͷϝϯόʔʹεΩϧͷΒ͖͕ͭ͋ͬͯͳ͠ ଐਓԽ /P ϦʔμʔશମΛཧղ͍ͯ͠Δ;ͭ͏ਓؒͷ͡Όແཧ Ͳ͏͢Δ͔͕ࣗΕ͍ͯͯޙͰಡΊΘ͔ΔΑ͏ৗʹཧ
ଐਓԽ͠ͳ͍ίʔυΛ͍ͯ͘͠།Ұͷํ๏
ฉ͍ͨଐਓԽΛආ͚Α͏ͱͯ͠ɺ࡞ۀͱϨϏϡʔͷϖΞΛຖճม͑ͨΒɺ ୭શମ૾ΛѲͰ͖ͳ͘ͳͬͨ जΕʹ৮ΔΑ͏ʹߦύονɺಈ͚͍͍ɺʹͳ͍ͬͯ͘ ີ݁߹ͱॏෳͷԹচ ཧͷํཱ͕ͨͳ͍ϋϦϘς ͦΕͧΕͷ෦͕ɺॻ͍ͨਓ͔͠Θ͔Βͳ͍ ·͞ʹଐਓԽ ଐਓԽશһ͕ແʹͳΔ͜ͱͷཪฦ͠
2 ίϛοτখࠁΈͰ͋Ε͋Δ΄ͲΑ͍ WT ࡞ۀதͷࢼߦࡨޡཁΒͳ͍ɻNBTUFSʹର͢Δมߋͷ࠷ऴܾఆ͚ͩΑͤ͜ ίϛοτͷཻ͕໌֬͠ΜͲ͘ͳ͍ w ࡞ۀऀ͕ʮͬͺΓ͜͏͠Α͏ʯͱ͋Ε͜ΕͬͨܦҢΛ͢ҙຯ શ͘ແ͍ w ϚʔδϟʔɺΓ͍ͨ͜ͱͷຊ࣭Λ
ΞτϛοΫʹ ද͢ɺՄಡͳ ͚͕ࠩͩཉ͍͠ ޙͰؾ͍ͮͨमਖ਼͍ͣΕ͔ͷదͳίϛοτʹpYVQͰࠞͥࠐΉ ޙͰTRVBTIpYVQͰ͖Δ༨͕͋Δͱ͍͏ҙຯͰɺখ͞ͳί ϛοτڊେίϛοτΑΓϚγ
3ཤྺվมʹͳΔͷͰQVTIGΛ͍͚ͯ͠ͳ͍Gةݥͩ WT ࡞ۀϒϥϯνݸਓͰઐ༗ɻίϛοτվมGܴɻগ͠ͰϨϏϡʔ͘͢͢͠Δ ϛεͬͯͯޙͰͳ͔ͬͨ͜ͱʹͰ͖Δ ͠ΜͲ͘ͳ͍ ͋Ε͜ΕͬͨܦҢෆཁͳͷͰɺ࡞ۀཤྺͥͻཧվมͯͩ͘͠ ͍͞ ϦϞʔτͷ্ॻ͖͕ා͍͔ΒGPSDFXJUIMFBTFΛ͑ QVTIGͰଞਓͷίϛοτΛফͯ͠͠·͏৺Λ͍ͯ͠Δ࣌Ͱɺ͢
Ͱʹؒҧͬͯ·͢ ͻͱͭͷϒϥϯνʹෳͷਓ͕ॻ͖ࠐΉ4VCWFSTJPOͷUSVOLͰ ͔ͦ͢Ε
4 NBTUFSʹίϛοτΛੵΜͰ͍͚ͳ͍ WT Ϧʔυ։ൃऀৗʹNBTUFSΛϦϑΝΫλͯ͠ΫϦʔϯʹ͓ͯ͘͠ νέοτෆཁ ෛ࠴αΫαΫฦࡁͰ͖Δ͠ΜͲ͘ͳ͍ ͻͱͭͷϒϥϯνͷॴ༗ऀਓ͚ͩ ͭ·ΓNBTUFSͷॴ༗ऀϚʔδϟʔϦʔυ։ൃऀ Ϧʔυ։ൃऀʹɺ͍ͭ୭͕ϒϥϯνΛ͍͍ͬͯঢ়ଶΛҡ࣋͢Δ ͕͋Δ
ˢ ίʔυͷҰ؏ੑΛΩʔϓ͓͔ͯ͠ͳ͍ͱɺಡΜͩਓ͕Կʹशͬͯॻ͘ ͖͔໎͏͔Β ίʔυελΠϧɺEPDͱ࣮ͷ߹ੑɺม໊ͷ๏ଇੑɺͳͲ
͠NBTUFS͕ຊʹΫϦʔϯͳΒɺ࡞ۀϒϥϯνʹࣄલϦϑΝΫλͷ ఔ͕ඞཁͳ͘ͳΔ ຊ࣭తͳίϛοτ͚ͩͰࡁΉͷͰɺ࡞ۀૣ͍͠ϨϏϡʔ͍͢͠ ͪΖΜɺϦʔυࣗ৴͕Δػೳมߋʹ͍ͭͯɺ ࡞ۀऀͱಉ͡Α͏ʹϒϥϯνΛΔ͖Ͱ͢Α
5 ৗʹNFSHFOP⒎ͰϚʔδཤྺΛ͖͢ WT جຊNBTUFSʹྻੵΈ͢Δɻਓؒذ͕ۤखɻ ίϯϑϦΫτϦϕʔεͰղফ͓ͯ͘͠ มߋॱংΘ͔Γ͍͢ϚʔδࣄނݮΔ ͠ΜͲ͘ͳ͍ ϚʔδίϛοτΛͨ͘͠ͳΔ৺ཧ w ϒϥϯνʹҙຯΛٻΊ͍ͯΔ͔Β
w ίϛοτ͕ҙຯΛද͢ͱࢥ͍ͬͯͳ͍ w ਐḿ͋Δײʹਁ͍ͬͯΔ͚ͩͰɺதʹڵຯΛ͍࣋ͬͯͳ͍ ˢٯͰ͢ ϒϥϯνͨͩͷഔମɺෆՄͳίϛοτ͕ͦ͜ຊ࣭
CMBNFͨ͠ͱ͖ಘΒΕΔͷͭͷίϛοτ ಉ࣌ʹมߋ͞ΕͨϑΝΠϧͳΒ͙͢ʹΘ͔Δ ͚ͲɺͲͷϚʔδίϛοτͰNBTUFSʹೖ͔ͬͨɺͦͷͱ͖ͷ࡞ۀϒϥϯ νશମͷࠩʜ લޙͰࢬ͔Ε͠·͍ͬͯͨ͘Βɺ͏ਖ਼͘͠ಡΊΔਓ͍·ͤΜ
࡞ۀϒϥϯνΛNBTUFSͷ)&"%ʹϦϕʔε ʜͳΒɺ్தͰى͖ΔίϯϑϦΫτղফɺ࡞ۀϒϥϯνͷ NBTUFSʹؒҧ͍͕ೖΔϦεΫ͕ͳ͍ ࡞ۀϒϥϯνͳΒɺQVTIޙςετࣦഊ͠์Ͱ͢ લ͠ͰϦϕʔεͨ͠ͷΛɺ͞Βʹ࡞ۀܧଓ͢Δ༨͋Γ·͢ ϚʔδίϛοτͰͷίϯϑϦΫτղফ͢Δͱʜ ࠷ޙͷ࠷ޙͰNBTUFS্ͷҰൃউෛ ޙͰϛεʹؾ͍ͮͯɺऔΓฦ͕͔ͭ͠ͳ͍ ίʔυߦΛͯͯ͢͠ɺҙຯతͳໃ६ʹΑΔόάͷϦεΫ͕͋Γ·͢
ͯ͢ͷίϛοτͱϒϥϯνΛ՝ཧνέοτʹؔ࿈͚Α WT ࡞ۀͷओͱͳΔίϛοτͷΈɺ՝ཧͱؔ࿈͚Δɻ աͳใίϛϡχέʔγϣϯϊΠζʹͳΔ ͍ΒΜίϛοτݟͳ͍͍ͯ͘͠ΜͲ͘ͳ͍ ࡞ۀϒϥϯνʹɺຊʹΓ͍ͨ͜ͱҎ֎ͷίϛοτ͕ೖΔ w NBTUFSʹ·ͩΠέͯͳ͍ίʔυ͕͋ͬͨͷΛ͔ͯ͠Β w ఆ͞Εͯͳ͔֦ͬͨுͷԼ४උ͕ඞཁɺͳͲ
શ෦͚͍ؔͯͨΒɺJTTVFϖʔδ্ͰɺԿ͕େࣄͳؔ࿈ίϛοτ ͳͷ͔Θ͔Βͳ͘ͳΔ Ϧϕʔε࠶QVTI͕ى͖Δͱ͞Βʹࠈ ͚ͦ͘ʹશ෦ͨ͘͠ͳΔͷɺେࣄͳίϛοτΛΞϐʔϧ͍ͨ͠ ͱ͍͏ҙ͕ࣝͳ͍ূڌ 6
ྻੵΈ্͛ʹͨ͠ͱ͖ɺ՝ཧͱϦϯΫ͠ͳ͍ͦͷଞͷίϛοτɺ Ϧʔυ։ൃऀͷϦϑΝΫλίϛοτͱಉ͡Ґஔ͚ͮʹͳΔ ͱͻͱͭͷϒϥϯνͩͬͨ෦ ϦϑΝΫλ ϦϑΝΫλ
ؾ͖ͮ·͔ͨ͠ 044ϓϩδΣΫτͷϩάɺΈͳ͞Μ͍͍ͩͨ͜͏ݟͯ·͢ΑͶ (JU)VCͷ044ϓϩδΣΫτͬͱҰൠతͳܗͷ(JUӡ༻ Ͱ͖ΔਓͳΒΈΜͳΑͬͯ͘ΔύλʔϯͲΜͳಠࣗӡ༻ϧʔϧΑΓڧྗ ཧղͷώϯτ ίϛοτΉ͔͠ύονϑΝΠϧͩͬͨͷ ϒϥϯνͷϓϧϦΫύονϑΝΠϧΛఴ͍ͯͨ͠ϝʔϧ
044Ͱͷ(JU࠷େͷϝϦοτ ָ؍తϩοΫઓུ ൵؍తϩοΫ ୭͔͕ϦιʔεΛѲͬͨΒɺଞͷਓ࡞ۀ։࢝Λͨͳ͍ͯ͘ ͚ͳ͍ ָ؍తϩοΫ ୭Ͱ͍ͭͰ࡞ۀΛ࢝ΊΒΕΔɻ݁Ռతʹڝ߹ͨ͠߹ͷΈɺ ૣ͍ͷউͪ ˢ ޙͰڝ߹͠ͳ͚Εฒྻޮ
Ͳ͏ͬͯڝ߹Λආ͚Δͷ͔ ʮϞδϡʔϧ͕มߋཧ༝ʹରͯ͠ด͍ͯ͡Δʯ Α͏ʹ͢Δ w 40-*%ͷ։์ดݪଇ 0$1 ͷผͷݴ͍ํ w 0$1֦ுʹରͯ͠Φʔϓϯʹɺมߋʹରͯ͠Ϋϩʔζʹ w
ͭ·Γˠ͋ΔϞδϡʔϧΛมߋ͍ͨ͠ͱ͖ɺଞͷϞδϡʔϧʹมߋΛՃ͑Δ ඞཁ͕͋Δͷμϝͳ͚ํͰ͢ /Pີ݁߹ :FTૄ݁߹
ͦΕʹͨͬͯ͠Ϧʔμʔͷ ଘࡏେ͖͗͢ͳ͍ w ཧ্ͷݖݶ͚ͩݟΕɺͱͯڧ͍͠େ͖͍ͷ͔֬ w ͍Ͱ͜Εɺөըಜͱಉ͡ͱ͍͑Ͳ͏ w ֤ϝϯόʔɺऀͰ͋ΓΧϝϥͰ͋ΓͦΕͧΕɺ ಜ͚ͩͰͰ͖ͳ͍͜ͱʹೳྗΛൃش͢ΔΛ͍࣋ͬͯΔ
w ಜશελοϑͷՌʹΛ௨ͯ͠ɺཧղ͠ɺత֬ͳࢦࣔΛग़͢ w ࣗ͘͝વͳͷͮ͘ΓͷϓϩηεͰ͢Ͷ ͠ɺ৬্͕ͳ͚ͩͷແೳ͕ಜʹͳͬͯɺཧղͳ͠ͰөըΛࡱͬͨΒ͍͏Ͷ
ͪΌΜͱ w ೳྗͱײΛ࣋ͬͨϦʔυ։ൃऀΛཱͯͯ৴པ͢Δ w શମΛঠѲ͢Δ͔Βͦ͜ଐਓԽ͠ͳ͍ίʔυΛͤΔ w ܗࣜతཧͱΤϏσϯεओମతͳྀͷܧଓ ˠʹͭͳ͕Δ w ίϛοτҙਤͷୡʹ͏㱠ػցతͳ࣌ܥྻόοΫΞοϓ
w ίϯϑϦΫτରࡦಁ໌ੑૄ݁߹0$1 ˢͬͯܧଓతʹϦϑΝΫλ
w ҙࣝߴ͍Ͱ͔͢ w ͰɺΤϯδχΞͱͯͨ͠Γલͷૉͳ͜ͱͰ͢ΑͶ w ϓϩδΣΫτͷͦͦͷૉੑΛྑ͘͢Δ͜ͱ͕ɺͬͱ ޮՌͷߴ͍(JUͷӡ༻ख๏Ͱ͢
ʮཧख๏ཱ͕֬͑͢͠͞Εɺཧղ͠߹͏ྗΛආ͚Δ͜ͱ͕Ͱ͖ΔͷͰʯ ͦΜͳͷໝͩͬͯ͜ͱɺ͜Ε·Ͱͷྺ࢙͕ͣͬͱɺূ໌͠ଓ͚ͯΔ͡Όͳ͍Ͱ͔͢ ͪΌΜͱ㱠ෳࡶͰແବͷଟ͍ӡ༻ϧʔϧΛؒҧ͍ͳ͘Δ͜ͱ ͦΕͦࣗ͜ಈԽ͖͢ඇਓؒతͳߦҝ͡Όͳ͍ ֶతʹ
ΤϯδχΞͱͯ͠ʮͪΌΜͱΔʯ ਓؒͷෛ୲ΛݮΒͯ͠ɺ ΑΓຊ࣭ʹؔ৺Λ͚Δ ӡ༻ϧʔϧΛ૿͢ͱίʔυͷ࣭Լ͕Δ ࣭Λ্͛ͯϧʔϧΑΓϞϥϧͰ͍ͬͯ͘