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
Commit message will never die
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Koichi ITO
March 24, 2018
Technology
8.4k
22
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Commit message will never die
Rails Developers Meetup 2018: day 1
(
https://techplay.jp/event/639872
)
Koichi ITO
March 24, 2018
More Decks by Koichi ITO
See All by Koichi ITO
The NotImplementedError Problem in Ruby
koic
1
1.3k
Exploring RuboCop with MCP
koic
0
6.4k
Ruby and LLM Ecosystem 2nd
koic
1
2.2k
STYLE
koic
0
2.2k
Ruby and LLM Ecosystem
koic
3
13k
Write Code Every Day
koic
1
2.6k
Bliki (ja), and the Cathedral, and the Bazaar
koic
7
3.2k
Welcome to the LLM Club
koic
0
420
RuboCop: Modularity and AST Insights
koic
3
5.8k
Other Decks in Technology
See All in Technology
AI時代の開発生産性を捉え直す — 経営と現場をつなぐ「開発組織のオブザーバビリティ」— / AI Dev Ex Conference 2026
tkyowa
1
1.8k
どこまでAIに任せるか 〜確率論と決定論の境界決定〜
shukob
0
550
インシデント事例と パッケージの全量解析に学ぶ ソフトウェアサプライチェーンの守り方 / supply-chain-attack-defense
flatt_security
0
1.1k
文字起こし基盤の信頼性
abnoumaru
0
150
41歳でAWSが好きすぎてITエンジニアになったおっさんの話
yama3133
1
780
NYC Summit 2026 におけるAmazon Bedrock AgentCore のアップデート
ren8k
0
120
人とエージェントが高め合う協業設計
kintotechdev
0
1k
データエンジニアこそ組織のオントロジーに向き合うべき — 問いに答えるAIから、事業を動かすAIへ
gappy50
4
940
事業成長とAI活用を止めないデータ基盤アーキテクチャの設計思想
hiracky16
0
740
Git 研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
2
660
実践が先生だった— 新卒サーバーエンジニア1年目のリアル
mixi_engineers
PRO
0
150
AI研修(Day2)【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
1k
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
390
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
57k
The SEO Collaboration Effect
kristinabergwall1
1
510
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Design in an AI World
tapps
1
270
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
190
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
340
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
For a Future-Friendly Web
brad_frost
183
10k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Transcript
$PNNJUNFTTBHFXJMMOFWFSEJF 4BU 3BJMTίϯτϦϏϡʔγϣϯ ͔ΒֶΜͩ (JU(JU)VCज़ ҏ౻ߒҰ !LPJD FTN 3BJMT%FWFMPQFST.FFUVQEBZ
άϥϯτΩϣαελϫʔ֊
None
None
None
None
None
ࠓͷ
IUUQTUXJUUFSDPNLPJDTUBUVT
SBJMTSBJMT 3FNPWFA"4.VMUJCZUFATVOJDPEFUBCMF
None
$POUFYU Կނඞཁ͔
$POUFYU Կނඞཁ͔ .FSJU ͲΜͳಘ͕
)PX ࣮ϙΠϯτ
)PX ࣮ϙΠϯτ ࣮ࡍ· ͩଓ͘
.FTVSF ܭଌ
.FTVSF ܭଌ Ϛʔδͯ͠Β͏ͨΊʹඞཁͳใΛ ඞཁͳ͚ͩ٧Ί͍ͯΔ
ͨΓલΛͨΓલʹ Step up your natural commit skill
,BUB
w5IFTFWFOSVMFTBHBJO w.Z3PDL)FSPFTJO +BQBO w(JU(JU)VCXPSLqPX "HFOEB
w5IFTFWFOSVMFTBHBJO w.Z3PDL)FSPFTJO +BQBO w(JU(JU)VCXPSLqPX "HFOEB
IUUQTDISJTCFBNTJPQPTUTHJUDPNNJU
4FQBSBUFTVCKFDUGSPNCPEZXJUIBCMBOLMJOF -JNJUUIFTVCKFDUMJOFUPDIBSBDUFST $BQJUBMJ[FUIFTVCKFDUMJOF %POPUFOEUIFTVCKFDUMJOFXJUIBQFSJPE 6TFUIFJNQFSBUJWFNPPEJOUIFTVCKFDUMJOF
8SBQUIFCPEZBUDIBSBDUFST 6TFUIFCPEZUPFYQMBJOXIBUBOEXIZWTIPX 5IFTFWFOSVMFTPGBHSFBU(JU DPNNJUNFTTBHF
IUUQTQPTUEDDIPXUPXSJUFBHJUDPNNJUNFTTBHF
None
৺ʹཹΊ͓͍͍ͯͯͩ͘͞ ͜Εࠓ·Ͱ ݴΘΕ͖ͯͨ ͣͬͱ ͜ͱͰ͢ɻ
कഁ
कഁ
.JYJO+BQBOFTF
w ߦۭ͚ͯॻ͖·͠ΐ͏ w HJUͷίϛοτϝοηʔδߦ͕ λΠτϧɺߦҎ͕߱ຊจ w ߦΛۭʹͤͣຊจΛॻ͘ͱશͯλ Πτϧѻ͍ʹͳΓɺgit --oneline tig
ίϚϯυͰҰॹͨ͘ʹͳΔ λΠτϧͷޙߦۭ͚ͯຊจΛॻ͘
λΠτϧͷޙߦۭ͚ͯຊจΛॻ͘ λΠτϧ ߦ ຊจ ߦҎ߱ ۭߦ ߦ
w ࣈ҆Ͱଟগӽ͑ͯྑ͍ w ཁʹͰ͖ͳ͍΄Ͳ͘ͳΔΑ͏Ͱ͋ ΕͦΕຊจʹॻ͘͜ͱ w ίϛοτϝοηʔδʮԿނʯΛॻ͘ ͷ͕ͩλΠτϧʮԿΛʯͰྑ͍ λΠτϧΛࣈҎʹ͓͞ΊΔ
w จষͷ࢝Ί͕େจࣈӳจ๏ͷجຊ w lӳจ๏จষઌ಄େจࣈz<ݕࡧ> w ຊޠͳΒؾʹ͠ͳ͍ ؔͳ͍ λΠτϧͷจ಄Λେจࣈʹ͢Δ
w λΠτϧྖҬΛݮΒͤΔ w ຊޠͰ۟ෆཁ w ͕۟ݱΕΔͱಡݱΕ࢝ΊͨΓཁ ͔ΒΊͷઆ໌ͱΕ͍ͯ͘ w ΧϯϚɺಡඪͰ࠷େճΛ҆ ʹ͍ͯ͠Δ
λΠτϧͷจʹϐϦΦυΛ͚ͳ͍
w /" w ຊޠͷ߹ମݴࢭΊ͔༻ݴࢭΊ͔ ΛͳΔ͘౷Ұ͍ͯ͠Δ w ݸਓతʹ༻ݴࢭΊΛ͍ͬͯΔ w நྫʓʓΛ˚˚͢Δ λΠτϧ໋ྩ๏Ͱهड़͢Δ
w ࣈ҆Ͱଟগӽ͑ͯྑ͍ w 13ͷຊจʹॻ͘༰Λه͓ͯ͘͠ͱ ྑ͍ ޙड़͢Δ(JU)VCͱͷ࿈ಈྫ ຊจߦ͋ͨΓࣈҎʹ͓͞ΊΔ
w ʮͲͷΑ͏ʹ )PX ʯ࣮ΛಡΊ Θ͔Δ w ʮԿΛ 8IBU ʯίϛοτϝοηʔ δߦʹλΠτϧͱͯ͠ه͢
w ʮͳͥ 8IZ ʯίϛοτϝοηʔ δߦͷຊจͱͯ͠ه͢ ຊจͰʮͲͷΑ͏ʹʯͰͳ͘ʮԿ ΛʯͱʮͳͥʯΛઆ໌͢Δ
8IBU ԿΛ͢Δ͔
$POUFYU Կނඞཁ͔ 8IBU ԿΛ͢Δ͔
$POUFYU Կނඞཁ͔ .FSJU ͲΜͳಘ͕ 8IBU ԿΛ͢Δ͔
$POUFYU Կނඞཁ͔ .FSJU ͲΜͳಘ͕ 8IBU ԿΛ͢Δ͔ 8IBU
$POUFYU Կނඞཁ͔ .FSJU ͲΜͳಘ͕ 8IBU ԿΛ͢Δ͔ 8IZ 8IBU
5IFTFBSF (VJEFMJOFT IUUQKBXJLJQFEJBPSHXJLJ&""&""&##&&##"NFEJB'JMF$BOUJOP1MBOJTQIFSFQOH
w5IFTFWFOSVMFTBHBJO w.Z3PDL)FSPFTJO +BQBO w(JU(JU)VCXPSLqPX "HFOEB
)FSPFT !LBNJQP !ZZBHJ !BNBUTVEB BOENPSF !ZBIPOEB !QPDLF
w ڧͦ͏ͳਓͨͪɻڧͦ͏ͳਓͨͪΛਅ ࣅΕڧ͘ͳΕͦ͏ w ڧ͍ਓୡίϛοτϝοηʔδڧ͍ w ίʔυ͚ͩͰͳ͘ίϛοτϝοηʔδ ެ։͞Εͯͯഎத͔Β,BUBΛֶͿ ͜ͱ͕Ͱ͖Δ )FSPJTTUSPOH
,BUB 28"/ JO 2VBMJUZ8JUIPVU"/BNF
w l/PEFTDSJQUJPOQSPWJEFE ಛʹॳର໘ʹରͯ͠ ࣦྱz w lͳͥͦͷ13ΛϚʔδ͢Δඞཁ͕͋ Δͷ͔Λॻ͘z w l༗ӹͳใͯ͢ه͢z w
l$PTNFUJDDIBOHFͰ͋͑ͯ͋ ·Γॻ͔ͳ͍ ࣭ྔͷରൺ z )FSPFT໊ݴू ࢲͷίϯύε
lOPEFTDSJQUJPO QSPWJEFEzΛ߇͑Δ (JU(JU)VC5JQT
#FGPSF IUUQTHJUIVCDPNNVSZPJNQMCVPZTQVMM
"GUFS IUUQTHJUIVCDPNCCBUTPWSVCPDPQQVMM
w5IFTFWFOSVMFTBHBJO w.Z3PDL)FSPFTJO +BQBO w(JU(JU)VCUJQT "HFOEB
My workflow before and after
w NBTUFSʹ͍Δ··࡞ۀ w ࡞ۀॲ͕͍ͭͨΒϒϥϯνΛΔ w HJUDPNNJU࣌ʹλΠτϧ͚ͩΛ ॻ͍ͯίϛοτ w 13ͰຊจΛॻ͘ ʙ͘Β͍લͷ࡞ۀϑϩʔ
w ࡞ۀͷཁΛϒϥϯν໊ʹͯ͠ϒϥϯ νΞτ w λΠτϧͱຊจΛίϛοτ w 13ܗͷΈ ݱࡏͷ࡞ۀϑϩʔ
w ࡞ۀͷཁΛϒϥϯν໊ʹͯ͠ϒϥϯ νΞτ w λΠτϧͱຊจΛίϛοτ w 13ܗͷΈ ݱࡏͷ࡞ۀϑϩʔ 5JQTհ
lOPEFTDSJQUJPOQSPWJEFEzΛ߇͑Δ ࡞ۀతʹ͍ͭͯϒϥϯν໊Λ͚Δ ϒϥϯνΛߜΓࠐΊΔΑ͏ʹ͢Δ .BSLEPXOΛͬͯίϛοτϝοηʔδΛॻ͘ λΠτϧͱҰॹʹຊจΛॻ͘
$MPTJOHLFZXPSETΛ׆༻͢Δ ؔ࿈͢ΔίϛοτTRVBTI͢Δ (JU(JU)VCUJQT ࡁ
࡞ۀతʹ͍ͭͯ ϒϥϯν໊Λ͚Δ (JU(JU)VC5JQT
w ࡞ۀ ్த ͷ͜ͱʹ͍֮ͭͯॻʹͳΔ w (JU)VCͰͷλΠτϧΛΠϝʔδ͢Δ w Ϛʔδ͞ΕΔࡍʹl.FSHFQVMM SFRVFTUGSPNVTFS CSBODIOBNFzͱ͍ͬͨײ͡Ͱλ
ΠτϧʹೖΔͷͰͳΔͯ͘͘͠Δ ࡞ۀతʹ͍ͭͯϒϥϯν໊Λ͚ͭΔ
λΠτϧͱϒϥϯν໊ͷ૬ҧ FH ϒϥϯν໊
λΠτϧͱϒϥϯν໊ͷ૬ҧ FH ϒϥϯν໊
λΠτϧͱϒϥϯν໊ͷ૬ҧ FH ϒϥϯν໊
λΠτϧͱϒϥϯν໊ͷ૬ҧ FH ϒϥϯν໊
None
ϒϥϯνΛߜΓࠐΊΔΑ͏ ʹ͢Δ (JU(JU)VC5JQT
ϒϥϯν໊ͰߜΓࠐΉ alias cb=‘ git checkout ` git branch | peco
| sed -e "s/\* //g" | awk "{print \$1}"`' IUUQTHJUIVCDPNLPJDEPUpMFTCMPCFECECGBCGCEPUTIHJUTI- ߜΓࠐΈ༻ ΤΠϦΞε
ϒϥϯν໊ͰߜΓࠐΉ IUUQTHJUIVCDPNLPJDEPUpMFTCMPCFECECGBCGCEPUTIHJUTI- QFDPͰߜΓࠐΈ
w LPJDΦϦδφϧ w ࡞Γ͔͚ͷϩʔΧϧͷͷɺੜࣽ͑Ͱ ެ։ʹૣ͗͢Δ w ෳͷ࡞ۀதϒϥϯνΛ࣋ͭϦϙδτ ϦͰͷϒϥϯνߜΓࠐΈͷϔϧύʔ w ෆඞཁʹόοΫϦϯΫΛ͚ͭͨ͘ͳ͍
࡞ۀதϒϥϯνͷ಄ࢠʹXJQ@Λ͚Δ
XJQ@Ͱ࢝·ΔϒϥϯνQVTIͰ͖ͳ͍ #!/bin/sh # if [ "$(git rev-parse --abbrev-ref HEAD |
grep '^wip_')" ]; then echo "\033[0;31m[ABORT] You cannot push a branch whose prefix is \`wip_\`. \033[0;39m" 1>&2 exit 1 fi exit 0 IUUQTHJUIVCDPNLPJDEPUpMFTDPNNJUGCBCEEDEFGCCEFEGB HJUIPPLT QSFQVTI
%&.0
.BSLEPXOΛͬͯ ίϛοτϝοηʔδΛॻ͘ (JU(JU)VC5JQT
IUUQLPJDIBUFOBCMPHDPNFOUSZHJUDPOpHHMPCBMDPSFDPNNFOUDIBS
w HJUͷσϑΥϧτͩͱɺίϛοτϝοηʔ δΛฤू͢ΔΤσΟλͰͷίϝϯτߦ͕ ʹͳ͍ͬͯΔ w ҰํͰ(JU)VCͷ1VMM3FRVFTUͰ จॻߏΛ࡞Δ࣌.BSLEPXOͱͳ ΔͨΊɺݟग़͠ʹ͏͕ίϝϯτߦͱ ͯ͠ίϛοτϝοηʔδ͔Βফ͍͑ͯͨ Μෆศ
.BSLEPXOͰॻ͘5JQ
ίϝϯτͷจࣈΛ͔Βมߋ͢Δ % git config --global core.commentchar '^' ?ʹมߋ͢Δ w ͪΖΜ?Ͱͳͯ͘ྑ͘ɺϓϥοτϑΥʔ
ϜͰൺֱతߦ಄ʹΘͳͦ͞͏ͳͷΛબͿ w ྫ͑3VCZͩͱ!ͳͲίϛοτϝο ηʔδͰίʔυྫΛه͠͏ΔͷͰ͑ͳ͍
ίϝϯτͷจࣈΛ͔Βมߋ͢Δ diff --git a/dot.gitconfig b/dot.gitconfig index 07e3ef8..a95eae6 100644 --- a/dot.gitconfig
+++ b/dot.gitconfig @@ -30,6 +30,7 @@ branch = auto interactive = auto [core] + commentchar = ^ editor = emacsclient -nw -a '' excludesfile = ~/.gitignore [diff] % git config --global core.commentchar '^' HJUDPOpHͷՃ
λΠτϧͱҰॹʹຊจΛॻ͘ (JU(JU)VC5JQT
w 1VMM3FRVFTUʹॻ͘͜ͱΛ͋Β͔͡Ίί ϛοτϝοηʔδʹه͢ w ʮίϛοτˠ13࣌ʹॻ͘ʯͰͳ͘ʮίϛο τ࣌ʹॻ͘ˠ13ܗ͘Β͍ʯ w Ͳ͏ͤॻ͘ͳΒϒϥβͰͳ͖͘ͳΤ σΟλͰ w
NBTUFSQVTI͢Δͱ͖ͱྲྀΕΛม͑ͳ͍ λΠτϧͱҰॹʹຊจΛॻ͘
HJUDPNNJU࣌ʹΤσΟλฤू͢Δ
13࣌ʹλΠτϧຊจ͕ຒ·ͬͯΔ
$MPTJOHLFZXPSET Λ׆༻͢Δ (JU(JU)VC5JQT
w ίϛοτϝοηʔδʹ'JYFT൪߸ ͳͲؚΉͱ*TTVFͷΫϩʔζ࿈ܞ ʹͳΔ w طʹڍ͕͍ͬͯΔ*TTVFͷϙΠϯ λʹͳΔར͕͋Δ $MPTJOH,FZXPSETΛ׆༻͢Δ
IUUQTIFMQHJUIVCDPNBSUJDMFTDMPTJOHJTTVFTVTJOHLFZXPSET ༗ޮͳΩʔϫʔυ
'JYFTͷྫ FH *TTVFΛ ࢦఆ͍ͯ͠Δ
'JYFTͷྫ FH *TTVFΛ·ͱΊͯ ࢦఆ͍ͯ͠Δ
'JYFTͷྫ FH ϦϙδτϦʹΑΓ λΠτϧهࡌ
ؔ࿈͢Δίϛοτ TRVBTI͢Δ (JU(JU)VC5JQT
ຬΛ࣋ͯ͠13ͷ४උ 1SPCMFN දग़͢Δ
ຬΛ࣋ͯ͠13ͷ४උ $POUFYU ඞཁͳഎܠ
ຬΛ࣋ͯ͠13ͷ४උ 8IZ ରҊͱͷൺֱ $POUFYU ඞཁͳഎܠ
0QFOB13
ࢲͷ3VCP$PQྗ Use ""
None
TRVBTI HJUQVTIIFBEG
w ϝϯςφɺϩʔΧϧͰͷ։ൃ ྫ5%% ʹΑΔSFEDPNNJUHSFFO DPNNJUSFGBDUPSDPNNJUͷ ίϛοτཻʹڵຯ͕ͳ͍ w 13લͷϩʔΧϧ࡞ۀΛҰ۠Γͨ͠ ཻ͍ɺ13ϚʔδޙͷϦϞʔτมߋ ཤྺΛཻ͍͍ͨͱͳΔ
TRVBTIͷࢥߟ
w ϝϯςφϯεͰݫີʹॏཁͳͷҎԼ w ίϛοτͰͭͷมߋཧ༝Ͱ͋Δ͜ͱ w ςετίʔυ͕ηοτͰ͋Δ͜ͱ w ݁13ϨϏϡʔޙʹTRVBTI͢Δ Α͏ٻΊΒΕΔ͕ɺ͜Εਖ਼͍࢟͠ Ͱ͋Δ
TRVBTIͷࢥߟ
͓Ϛʔδ
ϝϯςͷྺ࢙ʹ։ൃ్্ͷෆཁ ίϛοτʹTRVBTIͯ͠ ෆཁͳίϛοτ͕ݱΕͳ͍
ॱಓ੍উ ͍·͋ΔྗͰಊʑͱίϛϡχςΟʹࢀՃ
w SBJMTSBJMTϦϙδτϦ͔Βɺ3BJMTͷίʔ υ͚ͩͰͳ͘13ͷग़͠ํ͔Βίϛοτϝο ηʔδͷॻ͖ํֶͿ͜ͱ͕Ͱ͖Δ w ಛʹίϯτϦϏϡʔλ͔࣌Βίϛολʔ ʹͳ͍ͬͯΔ3BJMTίϛολʔͷίϛοτ ͓खຊʹ͓͢͢Ί ࠪҰ՝՝ײ͋Δ
w ίϛοτϝοηʔδΛ੍͢ΔͷϦϙδ τϦͷྺ࢙ͷ҆ఆΛ੍͢Δ ͓ΘΓʹ
IUUQTUXJUUFSDPNLPJDTUBUVT
3BJMT044ύονձ ݄࣍։࠵
࣍ճ݄ ݄ ʙFTNʹͯ :PV
None
One more thing…
None
͋ͱ͔Γ·͢Ͷʁ ࠾༻ Ҏ্ͷ3BJMTΞϓϦ։ൃͷ࣮ l3BJMT044Λ௨͍ͨ͡͠ϓϩάϥϚʔz @koic·ͰͲ͏ͧ