참고#1 : Karma-style
참고#2 : How to write Git commit's Subject and Body
이번 포스팅은 위 글들을 1차 가공한 포스팅을 기반으로 작성되었습니다
즉, 2차로 가공된 포스팅이므로 원문에서 누락된 내용과 오역이 있을 수 있으니 원문과 함께 참고바랍니다
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자를 넘지 않는 것을 권장합니다
Type
feat
: 새로운 기능 추가 (major)
fix
: bug fix (major)
docs
: 문서 수정 (major)
style
: 세미콜론 같은 코드의 사소한 스타일 변화.
refactor
: 변수명 수정같은 리팩터링
test
: 테스트 코드 추가. 수정
chore
: 중요하지 않은 일
Scope
scope는 Karma 도구 내에서 주로 사용하므로 나중에 필요할때 따로 다루겠습니다
init
,runner
,watcher
등이 있습니다
Subject
기본적으로 현재시제의 명령형 어조를 사용합니다
하지만, 이는 영어기준이고 한글에서는 "A 기능 수정"처럼 명사형태가 더 자연스럽게 느껴지므로 고려해 볼 만하다는 생각이 듭니다refactor: rename the iVars to remove the common prefix
본문 역시 현재 시제의 명령형 어조를 권장합니다
내용 측면에선 이전 commit과 비교하여 왜 변경하게 되었는지 이유를 포함하도록 권장합니다
꼭 쓰지 않아도 됩니다
특정 git issue를 해결하는 commit의 경우 footer에 issue 번호를 기입합니다
footer에 참조된 issue는 close됩니다
# issue가 한 개인 경우
Closes #234
# issue가 여러개인 경우
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 단위 역시 팀마다 회사마다 다릅니다
참고로, 한 가지 추천되는 방식은 기능
단위로 설정하는 것입니다
(함수가 잘 세분화되어 기능단위 == 함수단위라면 함수단위라고도 볼 수 있겠네요)
너무 작지도, 크지도 않도록 동료와 상의해서 결정하고 맞춰나가는 것이 바람직합니다