commit message를 잘 작성하는 것은 원활한 협업을 위해 중요한 부분입니다
그럼 잘 작성된 commit이란 무엇일까요?
정답은 없겠지만 개인적으론, 이미 많은 사람들의 공감을 얻은 convention이 있다면 그것을 따르는게 가장 좋은 방법이라고 생각됩니다
다행히도(?) commit message에 대한 여러 convention들이 존재합니다
이번 포스팅에서는 그 중 Karma Style에 대해 알아보겠습니다
먼저 Karma style로 작성된 commit의 예시를 살펴봅시다
<type> (<scope>): <subject>
<body>
<footer>
fix(middleware): ensure Range headers adhere more closely to RFC 2616
Add one new dependency, use range-parser (Express dependency) to compute
range. It is more well-tested in the wild.
Fixes
type / scope / subject 등의 단어들이 등장하는 것을 볼 수 있습니다
각 요소들을 어떻게 작성하는지 알아보겠습니다
✔ 첫 번째 줄 (제목)
<type> (<scope>): <subject>
첫 번째 줄은 70자를 넘지 않는 것을 권장합니다
scope는 Karma 도구 내에서 주로 사용하므로 나중에 필요할때 따로 다루겠습니다
init, runner, watcher 등이 있습니다
Subject
기본적으로 현재시제의 명령형 어조를 사용합니다
하지만, 이는 영어기준이고 한글에서는 "A 기능 수정"처럼 명사형태가 더 자연스럽게 느껴지므로 고려해 볼 만하다는 생각이 듭니다
refactor: rename the iVars to remove the common prefix
✔ 본문 (body)
본문 역시 현재 시제의 명령형 어조를 권장합니다
내용 측면에선 이전 commit과 비교하여 왜 변경하게 되었는지 이유를 포함하도록 권장합니다
꼭 쓰지 않아도 됩니다
✔ Footer
특정 git issue를 해결하는 commit의 경우 footer에 issue 번호를 기입합니다
footer에 참조된 issue는 close됩니다
Closes #234
Closes #123, 245, 992
꼭 쓰지 않아도 됩니다
앞서 Karma Style의 전반적인 format을 알아보았습니다
이번에는 문장을 적어야 하는 Subject와 Body를 어떻게 작성하는 것이 좋은지에 대해 알아보겠습니다
영문 작성에 기준하였으므로 일부는 한글에 어울리지 않을 수 있습니다
Summary
Subject와 Body 사이에 한 줄 공백
Subject는 50자 미만
Subject의 첫 글자는 대문자
Subject의 마지막 글자는 마침표(.)
Subject는 명령형 어조
Body는 72자마다 줄바꿈
Body의 내용은 How보단 What+Why로 구성
convention이 모두 다르듯이, commit 단위 역시 팀마다 회사마다 다릅니다
참고로, 한 가지 추천되는 방식은 기능단위로 설정하는 것입니다
(함수가 잘 세분화되어 기능단위 == 함수단위라면 함수단위라고도 볼 수 있겠네요)
너무 작지도, 크지도 않도록 동료와 상의해서 결정하고 맞춰나가는 것이 바람직합니다