Github

Conventional Commit, 커밋 메시지, 커밋 메시지 적는 법, commit

pepega 2021. 11. 4. 17:53

나 혼자 개발하는 건이면 상관 없을 수 있겠지만

모두가 한 repository에서 작업을 한다면

남이 봐도 이해하기 쉬운 커밋 메시지를 적어야 한다.

 

커밋 메시지를 잘 써야하는 대표적인 이유는

1. 더 좋은 커밋 로그 가독성

2. 더 나은 협업과 리뷰 프로세스

3. 더 쉬운 코드 유지보수

 

커밋 메시지는 주로 영어를 활용한다.

하지만 한국인끼리 협업을 한다면 굳이 영어를 쓸 필요가 있을까 싶다.

 

커밋 메시지는 아래와 같은 구조가 되어야 한다.

<타입>[적용 범위(선택 사항)]: <설명>

[본문(선택 사항)]

[꼬리말(선택 사항)]

커밋에는 라이브러리를 사용하는 사람들에게 의도를 전달하기 위해

다음과 같은 구조적 요소가 포함된다.

 

1. fix: 코드 베이스에서 버그를 패치하는 fix 타입의 커밋(유의적 버전에서의 PATCH와 관련이 있다)

2. feat: 코드베이스에서 새 기능이 추가되는 feat 타입의 커밋(유의적 버전에서의 MINOR와 관련이 있다)

3. BREAKING CHANGE: 본문이나 꼬리말의 시작 부분에 들어가는 문자열이다.

커다란 API 변경이 있다는 것을 의미한다.(유의적 버전에서의 MAJOR와 관련이 있다)

어떠한 커밋의 타입이라도 BREAKING CHANGE는 해당 커밋의 일부가 될 수 있다.

4. 다른 타입: fix:, feat: 이외의 커밋 타입을 말한다.

예를 들어 Angular Conventions 기반에서는

chore:, docs:, style:, refactor:, perf:, test: 등의 타입을 사용하는 것을 권고한다.

 

새로운 기능이나 버그 수정 없이 현재 구현체를 개선하는 커밋에 대해서는

improvement 을 사용하는 것이 좋다.

이 타입은 BREAKING CHANGE를 포함하지 않는 한 Conventional Commits 스펙에 의해 강제되는 부분이 아니고

유의적 버전에도 암묵적 영향을 가지지 않기 때문이다.

추가적인 문맥 정보를 제공하기 위한 목적으로 사용되는 적용 범위는 커밋의 타입에 덛붙힐 수 있다.

내용은 괄호 안에 넣으면 된다.

feat(parser): add ability to parse arrays

 

 

커밋 메시지 규칙 (영어버전)

1. 동명사보다는 명사를 사용한다.

2. 관사는 사용하지 않는다. (a, an, the, etc.)

3. 부정문을 사용한다. (Don't)

커밋 메시지는 명령문 형태로 써야한다. 하단에 추가로 설명할 계획이다.

오타 수정은 Fix type로 진행하면 된다.

하단은 유명한 참고자료다.

 

커밋 메시지 규칙 (한국버전)

1. 제목과 본문을 한 줄 띄워 분리하기

2. 제목은 영문 기준 50자 이내로

3. 제목 첫 글자를 대문자로

4. 제목 끝에 '.' 금지

5. 제목은 명령조

6. 본문은 영어 기준 72줄마다 줄 바꾸기

7. 본문은 어떻게보다 무엇을, 왜 에 맞춰서 작성하기

 

커밋 메시지 규칙(한국버전) 예시

1. 제목과 본문을 한 줄 띄워 분리하기

테이블에 시퀀스와 필수 컬럼을 추가하라

ID가 의미 없으므로 시퀀스를 컬럼을 추가했음
추가, 수정 추적을 위해 필수 컬럼을 추가했음

5. 제목은 명령조로 

A 제휴사의 키를 변경하라

Timed out 오류를 수정하라

A, B 테이블의 컬럼을 수정하라

본문은 명령조로, 본문은 평서문으로

 

 

 

 

출처

https://blog.ull.im/engineering/2019/03/10/logs-on-git.html

 

ull.im

울려 퍼지다.
반향하다.
공명하다.

blog.ull.im

https://meetup.toast.com/posts/106

 

좋은 git 커밋 메시지를 작성하기 위한 7가지 약속 : NHN Cloud Meetup

git커밋

meetup.toast.com

https://www.conventionalcommits.org/ko/v1.0.0-beta.4/

 

Conventional Commits

커밋 메세지에 사용자와 기계 모두가 이해할 수 있는 의미를 부여하기 위한 스펙

www.conventionalcommits.org

 

'Github' 카테고리의 다른 글

GitHub Flow 이해하기  (0) 2021.10.25