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
6k
これならしんどくないGit運用の考え方
8/20(火) Git運用勉強会 presented by GeekHub (大阪)
発表スライドです
Hisateru Tanaka
August 20, 2019
Tweet
Share
More Decks by Hisateru Tanaka
See All by Hisateru Tanaka
どうなる Remix 3
tanakahisateru
2
370
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
2
230
哲学史とモデリング
tanakahisateru
4
860
オブジェクト指向宗教史
tanakahisateru
32
18k
ほげ言語にあってPHPにない機能
tanakahisateru
6
3.5k
君たちはどうプログラミングするか
tanakahisateru
16
2.9k
デバッグ用ロガーの注入どうする?
tanakahisateru
2
660
アンドキュメンテッド ちょうぜつソフトウェア 設計入門 「オブジェクト指向に定義はない」のか?
tanakahisateru
25
9.8k
ちょうぜつ改め21世紀ふつうのソフトウェア設計
tanakahisateru
14
8.6k
Other Decks in Technology
See All in Technology
雲勉LT_Amazon Bedrock AgentCoreを知りAIエージェントに入門しよう!
ymae
2
210
マルチドライブアーキテクチャ: 複数の駆動力でプロダクトを前進させる
knih
0
9.9k
AIで加速する次世代のBill Oneアーキテクチャ〜成長の先にある軌道修正〜
sansantech
PRO
1
100
Android Studio Otter の最新 Gemini 機能 / Latest Gemini features in Android Studio Otter
yanzm
0
340
Pandocでmd→pptx便利すぎワロタwww
meow_noisy
2
920
LINEギフト・LINEコマース領域の開発
lycorptech_jp
PRO
0
370
組織の“見えない壁”を越えよ!エンタープライズシフトに必須な3つのPMの「在り方」変革 #pmconf2025
masakazu178
1
850
AI開発の定着を推進するために揃えるべき前提
suguruooki
1
170
リアーキテクティングのその先へ 〜品質と開発生産性の壁を越えるプラットフォーム戦略〜 / architecture-con2025
visional_engineering_and_design
0
6.6k
AWS Media Services 最新サービスアップデート 2025
eijikominami
0
110
重厚長大企業で、顧客価値をスケールさせるためのプロダクトづくりとプロダクト開発チームづくりの裏側 / Developers X Summit 2025
mongolyy
0
190
持続可能なアクセシビリティ開発
azukiazusa1
6
320
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
How STYLIGHT went responsive
nonsquared
100
5.9k
Bash Introduction
62gerente
615
210k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
192
58k
Unsuck your backbone
ammeep
671
58k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Embracing the Ebb and Flow
colly
88
4.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
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ͷӡ༻ख๏Ͱ͢
ʮཧख๏ཱ͕֬͑͢͠͞Εɺཧղ͠߹͏ྗΛආ͚Δ͜ͱ͕Ͱ͖ΔͷͰʯ ͦΜͳͷໝͩͬͯ͜ͱɺ͜Ε·Ͱͷྺ࢙͕ͣͬͱɺূ໌͠ଓ͚ͯΔ͡Όͳ͍Ͱ͔͢ ͪΌΜͱ㱠ෳࡶͰແବͷଟ͍ӡ༻ϧʔϧΛؒҧ͍ͳ͘Δ͜ͱ ͦΕͦࣗ͜ಈԽ͖͢ඇਓؒతͳߦҝ͡Όͳ͍ ֶతʹ
ΤϯδχΞͱͯ͠ʮͪΌΜͱΔʯ ਓؒͷෛ୲ΛݮΒͯ͠ɺ ΑΓຊ࣭ʹؔ৺Λ͚Δ ӡ༻ϧʔϧΛ૿͢ͱίʔυͷ࣭Լ͕Δ ࣭Λ্͛ͯϧʔϧΑΓϞϥϧͰ͍ͬͯ͘