본문 바로가기

Git

[Commit Message Convention] 깃 커밋 제목&내용 작성법

728x90
반응형

매번 커밋 메시지를 작성할 때마다 검색하다보니, 정리의 필요성을 느꼈다.

영문과 한글 모두 익숙해지기 위해, repository 별로 영문/한글 정해두고 메시지를 작성하고 있음.

이 글을 처음 작성할 당시에는 혼자 프로젝트를 했는데, 영문으로 작성을 하다가 입사하면 한글로 커밋 메시지를 작성해야 할 것 같다는 생각에 한글로 작성하기 시작했다. 실제로 지금 입사 후 한글로 메시지 작성 중.

 

추가로, commit template을 작성하면 매번 찾아보지 않아도 git commit 명령어 사용 시 vim에서 자동 생성되어 확인 가능하다.

현재 개인 컴퓨터에서는 해당 방법으로 사용 중. 정말 정말 매우 편리하다.
template 작성 방법에 대한 글도 작성 예정.

구성

세 가지 영역으로 구성되며, 각 영역은 빈 줄로 분리

  • 유형: 제목
  • 본문 (제목만으로 표현이 가능할 경우 생략 가능)
  • 꼬리말 (관련 이슈가 없을 경우 생략 가능)

제목

  1. 길이는 50자 이내 작성
  2. 첫 글자는 대문자
  3. 제목 끝에 마침표(.) 금지
  4. 커밋 메시지 유형
  • 기능추가/수정/삭제(feat): 애플리케이션이나 라이브러리에 기능 추가/수정/삭제(제품 코드 수정 발생)
  • 버그(fix): 버그 수정(제품 코드 수정 발생)
  • 리팩토링(refactor): 리팩토링(제품 코드 수정 발생)
  • 스타일(style): 코드형식, 정렬, 세미콜론, 주석 등 수정
          (제품 코드 수정 발생. 동작에 영향을 주는 수정은 없음)
  • 테스트(test): 테스트 코드 추가, 수정, 삭제
          (제품 코드 수정 없음. 테스트 코드에 관련된 모든 변경 시)
  • 문서(docs): 문서 추가, 수정, 삭제(코드 수정 없음)
  • 프로젝트(project): 프로젝트 관리 측면의 모든 수정
            (제품 코드 수정 없음. 예 : 빌드 스크립트 수정, git 설정, 패키지 배포 설정 변경 등)
  • 기타(etc): 그 외 모든 수정
  • 유형이 혼재된 경우, 되도록이면 커밋 분리. 분리가 어려울 경우 위 순서 상 상위 항목의 유형으로 작성.
    (예 : 기능과 테스트가 모두 포함된 경우 기능으로 작성)

본문

  1. 제목과 한 줄 띄워 분리
  2. "무엇을", "왜"에 집중해 최대한 상세히 작성
  3. 영문 기준 72자마다 줄바꿈
  4. 여러줄의 메시지 작성 시, "-"로 구분

꼬리말

  1. 이슈 트래커 작성
  2. 유형: #이슈번호
  3. 이슈 트래커 유형
  • 해결: 이슈 해결 아래 키워드 사용 시 github에서 Issue 자동 종료
- close/closes/closed : 일반 개발 관련 
- fix/fixes/fixed : 버그 픽스 또는 핫 픽스 
- resolve/resolves/resolved : 문의나 요청사항
  • 관련: 해당 커밋에 관련된 이슈번호(아직 해결되지 않은 경우)
  • 참고: 참고할 이슈가 있을 경우 사용

+ 이슈 트래커 잘 이용시 이슈 관리가 매우 편리해짐

참고 사이트

좋은 git 커밋 메시지를 작성하기 위한 7가지 약속
Git(깃) Commit Message convention(커밋 메시지 컨벤션)
Git 사용 규칙 - Git commit 메시지
협업시 GitHub 커밋 메시지 관리

728x90
반응형