Commit 컨벤션

  • Git commit 메세지의 중요성은 개발자라면 대부분이 알고 있다.
    다른 팀원들과의 협업으로 프로젝트를 할 때, 코드 스타일과 더불어 커밋 메세지 컨벤션을 정해 놓기 위해 협의를 한다. 어떻게 기준을 잡으면 좋을지 소개하려고 한다.

Commit 메세지 구조

  • 기본적인 구조는 제목, 본문, 꼬리말 세가지로 나누고, 영문으로 작성하는 경우를 기준으로 하며 100자를 넘길 수 없다.
<유형>(<범위>): <주제>
<빈 줄>
<본문>
<빈 줄>
<꼬리말>

유형

✔️ 타입은 태그와 제목으로 구성되고, 태그는 영어로 써야하며 첫 문자는 대문자로 한다.

  • Feat : 새로운 기능 추가 및 기능 업데이트

  • Fix : 버그 또는 에러 수정

  • Docs : 문서 수정, 블로그 포스트 추가

  • Style : 코드 포맷팅, 코드 오타, 함수명 수정, 세미콜론 누락, 코드 변경이 없는 경우, 스타일 수정

  • Refactor : 코드 리팩터링(기능은 같지만 코드만 개선)

  • Test : 테스트(테스트 코드 추가, 수정, 삭제, 비지니스 로직에 변경이 없는 경우)

  • Chore : 위에 걸리지 않는 기타 변경사항 (빌드 스크립트 수정, assets image, 패키지 추가, 환경변수 설정 등)

  • Design : CSS등 사용자 UI 디자인 변경

  • Comment : 필요한 주석 수정 및 삭제

  • Init : 프로젝트 초기 생성

  • Rename : 파일 혹은 폴더명 수정하거나 옮기는 경우

  • Remove : 파일을 삭제하는 작업만 수행하는 경우

Subject Rule

  • 영문 사용시, 동사원형 사용하고, 첫 번째 글자는 대문자로 표기한다.

  • 제목은 최대 50글자 넘지 않도록 하고, 마침표 및 특수기호는 사용하지 않는다.

Body Rule

  • 본문은 한 줄 당 72자 내로 작성한다.

  • 본문 내용은 최대한 상세히 작성한다.

  • 본문 내용은 어떻게 변경했는지 보다 무엇을, 왜 변경했는지를 설명한다.

규칙

  1. 유형 : #이슈 번호의 형식으로 작성한다.

  2. 이슈 트래커 ID를 작성

  3. 여러개의 이슈 번호는 ,로 구분

  4. 이슈 트래커 유형은 하기와 같다.

  • 꼬리말은 optional이고 이슈 트래커 ID를 작성한다.

  • 꼬리말은 “유형: #이슈 번호” 형식으로 사용한다.

  • 여러 개의 이슈 번호를 적을 때는 쉼표(,)로 구분한다.

  • 이슈 트래커 유형은 다음 중 하나를 사용한다.

  • Fixes: 이슈 수정중 (아직 해결되지 않은 경우)

  • Resolves: 이슈를 해결했을 때 사용

  • Ref: 참고할 이슈가 있을 때 사용

  • Related to: 해당 커밋에 관련된 이슈번호 (아직 해결되지 않은 경우)

commit 예시

Feat : Add signin, signup
회원가입 기능, 로그인 기능 추가
Resolves: #1
  • 첫 번째 줄에서는 Feat : Add signin, signup을 작성하고

  • 두 번째 줄에서는 signin, signup을 어디에 추가했고, 왜 추가했는지 작성한다.

  • 세 번째 줄에서는 해결한 이슈의 번호를 작성한다.

  • wq로 저장하고 나가면 커밋이 자동으로 된다.