Commit Convention

Commit Convention

ν•¨κ»˜ κ°œλ°œμ„ ν•˜λ©° 효과적인 μ˜μ‚¬μ†Œν†΅μ€ μž‘μ—…μ„ 더 μž˜ν•  수 있게 λ§Œλ“€μ–΄μ€λ‹ˆλ‹€.
잘 닀듬어진 Commit messageλŠ” 일일이 μ½”λ“œλ₯Ό ν™•μΈν•˜μ§€ μ•Šμ•„λ„ μ§κ΄€μ μœΌλ‘œ ν•΄λ‹Ή μž‘μ—… λ‚΄μš©μ„ μ•Œ 수 μžˆκ²Œλ” λ„μ™€μ€λ‹ˆλ‹€. λ˜ν•œ, 잘 κ΄€λ¦¬λœ λ‘œκ·Έλ“€μ€ git blame μ΄λ‚˜ revert, rebase, log λ“± git의 λͺ…λ Ήμ–΄λ“€κ³Ό 쒋은 μƒν˜Έμž‘μš©μ„ λ§Œλ“€λ©° Code reviewλ₯Ό 더 μž˜ν•  수 μžˆλ„λ‘ λ§Œλ“€μ–΄μ€λ‹ˆλ‹€.
효과적인 Commit message μž‘μ„±μ„ μœ„ν•΄ μ•„λž˜μ˜ 포맷을 μ‚¬μš©ν•©λ‹ˆλ‹€.

Template

[Ticket Number or Prefix] Summary #command {content} {footer}
Bash

Rule

β€’
제λͺ©κ³Ό 본문은 빈 ν–‰μœΌλ‘œ λΆ„λ¦¬ν•©λ‹ˆλ‹€.
β€’
제λͺ©μ€ 50자 μ΄λ‚΄λ‘œ μž‘μ„±ν•˜λ©°, λͺ…λ Ή / μ§€μ‹œ ꡬ문으둜 μž‘μ„±ν•©λ‹ˆλ‹€. (~둜 μ„€μ •, ~λ₯Ό μ‚­μ œ...)
β€’
ν•œκΈ€ μ‚¬μš©μ„ ꢌμž₯ν•˜λ‚˜, κ²½μš°μ— 따라 영문으둜 μž‘μ„±ν•  경우 첫 κΈ€μžλŠ” λŒ€λ¬Έμžλ‘œ μž‘μ„±ν•©λ‹ˆλ‹€.
β€’
λ‚΄μš©μ€ Bullet(-) ν˜•νƒœλ‘œ μž‘μ„±ν•˜λ©°, μ–΄λ–€ 이유둜 무엇을 μˆ˜μ •ν•˜μ˜€λŠ”μ§€ λͺ…μ‹œν•©λ‹ˆλ‹€.
β€’
Footerμ—λŠ” Metadataλ₯Ό μž‘μ„±ν•˜λ©°, ν•„μš”ν•œ κ²½μš°μ—λ§Œ μž‘μ„±ν•©λ‹ˆλ‹€.

Recommendation

JIRA 티켓이 μžˆλŠ” 경우 β†’ 제λͺ© μ•žμ— ν‹°μΌ“ 번호λ₯Ό λΆ™μž…λ‹ˆλ‹€

제λͺ©μ— Ticket Numberλ₯Ό λͺ…μ‹œν•©λ‹ˆλ‹€. (JIRAμ—μ„œ ν•΄λ‹Ή μ΄μŠˆμ— λŒ€ν•œ 컀밋을 μ‰½κ²Œ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€)
Ticket NumberλŠ” ν•œ branch에 ν•˜λ‚˜λ§Œ μ‚¬μš©ν•˜λ©°, ν•΄λ‹Ή μž‘μ—…μ΄ μƒν•˜κ΄€κ³„μ— μžˆλŠ” 두 티켓에 μ—°κ΄€λ˜μ–΄ μžˆλ‹€λ©΄, 가급적 Story의 Ticket Numberλ₯Ό κΈ°μž¬ν•©λ‹ˆλ‹€.
Β  μ˜¬λ°”λ₯Έ 경우
Β  잘λͺ»λœ 경우

JIRA 티켓이 μ—†λŠ” 경우 β†’ μ•„λž˜μ˜ Prefix κ·œμΉ™μ„ λ”°λ¦…λ‹ˆλ‹€

일반적인 κΈ°λŠ₯ 개발 / κ°œμ„  μž‘μ—… β€” feat:(띄어쓰기)
HOTFIX 및 버그 μˆ˜μ • β€” FIX:(띄어쓰기), HOTFIX:(띄어쓰기) λŒ€λ¬Έμžλ₯Ό μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” Commit Graphμ—μ„œμ˜ κ°€μ‹œμ„±μ„ 높이기 μœ„ν•¨μž…λ‹ˆλ‹€.
κ·Έ μ™Έμ˜ λ§ˆμ΄λ„ˆν•œ μž‘μ—…λ“€ β€” minor:(띄어쓰기)
Β  μ˜¬λ°”λ₯Έ 경우
Β  잘λͺ»λœ 경우

Commit의 제λͺ©μ€ λͺ…λ Ή / μ§€μ‹œ ꡬ문으둜 μž‘μ„±ν•©λ‹ˆλ‹€

ν•΄λ‹Ή 컀밋이 반영되면 μ–΄λ–€ κ²°κ³Όλ₯Ό κ°€μ Έμ˜¬ 것인지 λͺ…ν™•ν•˜κ²Œ λ‚˜νƒ€λ‚˜λ„λ‘, λͺ…λ Ή / μ§€μ‹œ ꡬ문으둜 μž‘μ„±ν•©λ‹ˆλ‹€.
β€’
이 변경사항이 적용되면 Swap ν•¨μˆ˜λ₯Ό Arrowν•¨μˆ˜λ‘œ μˆ˜μ •
β€’
If applied, this commit will,Β Remove deprecated Swap methods
Β  μ˜¬λ°”λ₯Έ 경우
Β  잘λͺ»λœ 경우

Β (μ€‘μš”) λ‚΄μš©μ— μ–΄λ–€ 이유둜 무엇을 μˆ˜μ •ν•˜μ˜€λŠ”μ§€ λͺ…μ‹œν•©λ‹ˆλ‹€.

메세지λ₯Ό μƒλž΅ν•  μˆ˜λŠ” μžˆμœΌλ‚˜, 이 κ²½μš°μ—λŠ” 제λͺ©μ— μˆ˜μ • 내역을 λͺ…μ‹œμ μœΌλ‘œ 인지할 수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
μ½”λ“œ 자체의 변경사항은 diffλ‚˜ blame으둜 확인할 수 μžˆμ§€λ§Œ, λ³€κ²½ν•œ 이유λ₯Ό νŒŒμ•…ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ§Žμ€ μ‹œκ°„μ΄ 걸릴 수 밖에 μ—†μŠ΅λ‹ˆλ‹€.
μ½”λ“œ μž‘μ—…μ˜ μƒμ„Έν•œ μ„€λͺ…, ν˜Ήμ€ μ½”λ“œ λ³€κ²½μ˜ 이유λ₯Ό λ‚΄μš©μ— Bullet(-) ν˜•νƒœλ‘œ μ μ–΄μ€λ‹ˆλ‹€. μ½”λ“œ λ³€κ²½μ˜ 경우, λ³€κ²½ μ „μ˜ λ™μž‘κ³Ό μ΄ν›„μ˜ λ™μž‘μ„ λͺ…μ‹œν•˜μ—¬ λ‚˜μ€‘μ— 디버깅 μ‹œ μ°Έμ‘°ν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.
단, λ‚΄μš©μ΄ λ„ˆλ¬΄ λ§Žκ±°λ‚˜ μ‚°λ§Œν•˜λ‹€λ©΄ μ½”λ“œμ— μ£Όμ„μœΌλ‘œ λ‚¨κΉλ‹ˆλ‹€.
Β  μ˜¬λ°”λ₯Έ 경우
Β  잘λͺ»λœ 경우

Footer

제λͺ©, λ‚΄μš© 이외에 λ‹€λ₯Έ μž‘μ—…μžκ°€ ν•΄λ‹Ή 컀밋에 λŒ€ν•˜μ—¬ μ°Έκ³ ν•  수 μžˆλŠ” λ‚΄μš©μ„ 맨 μ•„λž˜ Footer에 μž‘μ„±ν•©λ‹ˆλ‹€. 정해진 양식은 μ—†μŠ΅λ‹ˆλ‹€.
Title ...content... ref: 36f0e2395f2f9ccbf576d87b73fe924c39d9dd49
Plain Text

References