Commit Convention - #Karma

J.Noma·2021년 10월 9일
1
post-thumbnail

참고#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

먼저 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과 비교하여 왜 변경하게 되었는지 이유를 포함하도록 권장합니다

꼭 쓰지 않아도 됩니다



특정 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

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


🐔 Commit 단위

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

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

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

profile
노션으로 이사갑니다 https://tungsten-run-778.notion.site/Study-Archive-98e51c3793684d428070695d5722d1fe

0개의 댓글