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
Koichi ITO
March 24, 2018
Technology
22
8.1k
Commit message will never die
Rails Developers Meetup 2018: day 1
(
https://techplay.jp/event/639872
)
Koichi ITO
March 24, 2018
Tweet
Share
More Decks by Koichi ITO
See All by Koichi ITO
Write Code Every Day
koic
1
1.9k
Bliki (ja), and the Cathedral, and the Bazaar
koic
7
2.7k
Welcome to the LLM Club
koic
0
330
RuboCop: Modularity and AST Insights
koic
3
4.8k
Carving the Way to Ruby Engineering
koic
3
1.1k
Beyond the RuboCop Defaults
koic
3
4.7k
Minify Ruby Code
koic
2
2.4k
Permanent Agility
koic
38
9.3k
RuboCop: LSP and Prism
koic
3
5.4k
Other Decks in Technology
See All in Technology
CoRL 2025 Survey
harukiabe
1
210
[Codex Meetup Japan #1] Codex-Powered Mobile Apps Development
korodroid
2
930
BI ツールはもういらない?Amazon RedShift & MCP Server で試みる新しいデータ分析アプローチ
cdataj
0
170
HR Force における DWH の併用事例 ~ サービス基盤としての BigQuery / 分析基盤としての Snowflake ~@Cross Data Platforms Meetup #2「BigQueryと愉快な仲間たち」
ryo_suzuki
0
230
生成AI時代のセキュアコーディングとDevSecOps
yuriemori
0
120
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3k
AI時代こそ求められる設計力- AWSクラウドデザインパターン3選で信頼性と拡張性を高める-
kenichirokimura
3
330
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
43k
ソースを読むプロセスの例
sat
PRO
15
8.9k
防災デジタル分野での官民共創の取り組み (2)DIT/CCとD-CERTについて
ditccsugii
0
310
新規事業におけるGORM+SQLx併用アーキテクチャ
hacomono
PRO
0
320
Featured
See All Featured
Done Done
chrislema
185
16k
Gamification - CAS2011
davidbonilla
81
5.5k
Typedesign – Prime Four
hannesfritz
42
2.8k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Optimizing for Happiness
mojombo
379
70k
What's in a price? How to price your products and services
michaelherold
246
12k
Being A Developer After 40
akosma
91
590k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
The Cult of Friendly URLs
andyhume
79
6.6k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Become a Pro
speakerdeck
PRO
29
5.6k
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·ͰͲ͏ͧ