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
7.3k
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
Permanent Agility
koic
29
5.1k
RuboCop: LSP and Prism
koic
3
3.6k
Organizational Pattern Hatching
koic
0
1.4k
A Practitioner's Journey from Ruby 1.8 to Present
koic
1
1.9k
A Story Featuring Right Hand Archetype
koic
0
1.1k
Without Practice, No Emergence
koic
4
2.2k
The Resurrection of the Fast Parallel Test Runner
koic
1
5.8k
Software Craftsmanship against Nova Era
koic
0
1.6k
RuboCop Philosophy
koic
2
1.8k
Other Decks in Technology
See All in Technology
20240725 LLMによるDXのビジョンと、今何からやるべきか @Azure OpenAI Service Dev Day
nrryuya
3
1.2k
ACRiルーム最新情報とAMD GPUサーバーのご紹介
anjn
0
160
目標設定は好きですか? アジャイルとともに目標と向き合い続ける方法 / Do you like target Management?
kakehashi
10
3k
プレイドにおけるDatadog APMの活用方法
plaidtech
PRO
2
120
コンテナ・K8s研修 - 後半 Kubernetes 基礎&ハンズオン【MIXI 24新卒技術研修】
mixi_engineers
PRO
1
120
データ分析を支える技術 生成AI再入門
ishikawa_satoru
0
380
Azure AI ことはじめ
tsubakimoto_s
0
130
サーバーレスAPI(API Gateway+Lambda)とNext.jsで 個人ブログを作ろう!
shuntaka
PRO
0
560
AOAI Dev Day LLMシステム開発 Tips集
hirosatogamo
15
3.8k
たくさん本を読んだけど 1年後には綺麗サッパリ!を乗り越えて 学習の鬼になるぞ👹
yum3
0
160
AWS IAMのアンチパターン/AWSが考える最低権限実現へのアプローチ概略(JAWS-UG朝会#59資料改修20分版)
htan
0
330
Datadog Cloud SIEMを使ってAWS環境の脅威を可視化した話/lifeistech-datadog-cloud-siem
gidajun
0
480
Featured
See All Featured
How GitHub (no longer) Works
holman
305
140k
Designing the Hi-DPI Web
ddemaree
276
34k
YesSQL, Process and Tooling at Scale
rocio
166
14k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
13
430
Scaling GitHub
holman
458
140k
Code Review Best Practice
trishagee
58
16k
Fireside Chat
paigeccino
25
2.8k
GraphQLの誤解/rethinking-graphql
sonatard
59
9.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
39
47k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
360
22k
A designer walks into a library…
pauljervisheath
201
24k
A better future with KSS
kneath
231
17k
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·ͰͲ͏ͧ