[Git] Commit Convention

kk_jang93·2024년 6월 16일
0

commit message를 잘 작성하는 것은 원활한 협업을 위해 중요한 부분입니다

그럼 잘 작성된 commit이란 무엇일까요?

정답은 없겠지만 개인적으론, 이미 많은 사람들의 공감을 얻은 convention이 있다면 그것을 따르는게 가장 좋은 방법이라고 생각됩니다

다행히도(?) commit message에 대한 여러 convention들이 존재합니다

이번 포스팅에서는 그 중 Karma Style에 대해 알아보겠습니다

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

✔ 본문 (body)
본문 역시 현재 시제의 명령형 어조를 권장합니다

내용 측면에선 이전 commit과 비교하여 왜 변경하게 되었는지 이유를 포함하도록 권장합니다

꼭 쓰지 않아도 됩니다

✔ Footer
특정 git issue를 해결하는 commit의 경우 footer에 issue 번호를 기입합니다

footer에 참조된 issue는 close됩니다

issue가 한 개인 경우

Closes #234

issue가 여러개인 경우

Closes #123, 245, 992
꼭 쓰지 않아도 됩니다

Subject와 Body 작성법 details

앞서 Karma Style의 전반적인 format을 알아보았습니다

이번에는 문장을 적어야 하는 Subject와 Body를 어떻게 작성하는 것이 좋은지에 대해 알아보겠습니다

영문 작성에 기준하였으므로 일부는 한글에 어울리지 않을 수 있습니다

Summary
Subject와 Body 사이에 한 줄 공백
Subject는 50자 미만
Subject의 첫 글자는 대문자
Subject의 마지막 글자는 마침표(.)
Subject는 명령형 어조
Body는 72자마다 줄바꿈
Body의 내용은 How보단 What+Why로 구성

Commit 단위

convention이 모두 다르듯이, commit 단위 역시 팀마다 회사마다 다릅니다

참고로, 한 가지 추천되는 방식은 기능단위로 설정하는 것입니다
(함수가 잘 세분화되어 기능단위 == 함수단위라면 함수단위라고도 볼 수 있겠네요)

너무 작지도, 크지도 않도록 동료와 상의해서 결정하고 맞춰나가는 것이 바람직합니다

profile
앱개발을 사랑하는 개발자

0개의 댓글