Git 사용 규칙 - Git commit 메시지

반응형

 

Git 사용 규칙 - Git commit 메시지

본 글에서는 더 나은 커밋 로그 가독성, 협업 및 리뷰, 코드 유지보수를 지원하기 위한 깃 커밋 메시지 규칙을 정리한다. 

 

 

공통 규칙

1. 커밋 메시지는 최대한 한글로 작성한다.

 

2. 메시지 본문에 모든 변경 사항을 상세히 작성한다. 축약하여 쓰지 않고 제3자가 쉽게 이해할 수 있도록 최대한 풀어서 작성한다.

 

 

커밋 메시지 구성

1. 모든 커밋 메시지는 다음과 같이 세 영역으로 구성되며, 각 영역은 빈 줄로 분리된다.

  • 제목

  • 본문 (제목 만으로 표현이 가능할 때에는 생략 가능)

  • 꼬리말 (관련 이슈가 없으면 생략 가능)

유형: 제목

 

본문

 

꼬리말

 

 

제목 작성

1. 제목 줄은 72자 내로 작성한다. (Git UI 툴인 GitKraken 기준이며, 툴 또는 편의에 따라 변경 가능하다)

 

2. 제목 줄은 "유형: 제목" 의 형식으로 작성한다.

 

3. 커밋 메시지 유형은 다음 중 하나를 사용한다.

  • 기능추가: 기능 추가 (제품 코드 수정 발생)

  • 기능삭제: 기능 삭제 (제품 코드수정 발생)

  • 가능변경: 기능 변경 (제품 코드 수정 발생)

  • 버그: 버그 수정 (제품 코드 수정 발생)

  • 리팩토링: 코드 리팩토링 (제품 코드 수정 발생)

  • 형식:  코드 형식, 정렬, 주석 등의 변경 (제품 코드 수정 발생. 하지만 동작에 영향을 주는 변경은 없음)

  • 테스트: 테스트 코드 추가, 삭제, 변경, 수행 등 (제품 코드 수정 없음. 테스트 코드에 관련된 모든 변경에 해당)

  • 문서: 문서 추가, 삭제, 변경 (코드 수정 없음)

  • 프로젝트: 프로젝트 관리 측면에서의 모든 변경 (예: 빌드 스크립트 수정, Git 설정, 패키지 배포 설정 변경 등. 코드 수정 없음)

  • 기타: 위에 해당되지 않는 모든 변경

  • 위 유형들이 복합적으로 포함되어 있는 경우, 되도록 커밋을 분리한다. 분리가 어려운 경우에는 위 순서 상 상위 항목의 유형으로 작성한다. (예: 기능과 테스트가 모두 포함된 경우 기능으로 작성)

 

 

4. 제목은 개조식 구문으로 작성한다.

  • 예) "기능추가: 로그 출력 기능 추가"

  • 대부분의 가이드라인에서 제목을 명령문으로 작성 하도록 가이드하고 있지만, 한글로 작성되는 제목을 굳이 명령문으로 작성할 필요는 없어 보인다(진행하면서 변경될 경우 수정).

 

본문 작성

1. 본문 내용은 양에 구애받지 않고 최대한 상세히 작성한다.

 

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

 

 

꼬리말 작성

1. 꼬리말에는 이슈 트래커를 작성한다.

 

2. 꼬리말은 "유형: #이슈번호" 형식으로 작성한다.

 

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

  • 해결: 이슈 해결 시 사용

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

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

 

예제

위 규칙들을 적용한 깃 커밋 메시지의 예는 다음과 같다.

 

기능추가: 패킷 송신 이벤트에 관련된 로그 출력 기능 추가

 

필요하다면 더 자세한 설명을 서술한다. 

 

이 커밋이 해결한 문제에 관해 설명한다. 어떻게 문제를 해결했는지 설명하기보다는 왜 이런 변화를 만들었는가에 집중한다. ("어떻게"는 코드가 설명한다.)

이 변경으로 인해 나타나는 부작용이나 직관적이지 않은 결과가 나타나는가?

이 내용을 여기에서 설명한다.

 

문단을 더 추가하고 싶다면 문단 사이에 빈 행을 넣는다.

 

 * 개조식 서술도 괜찮음

 

 * 블릿(bullet)으로 하이픈(-)이나 별표(*)를 사용하고, 한 칸의 공간을 띄고 시작하며, 각 항목 사이 빈 행을 넣는 방식이 일반적이나 다양한 관례가 있음

 

* 세번째 블릿

  - 하부 블릿

 

만약 이슈 트래커를 사용한다면 다음처럼 내용 하단에 참조를 추가한다.

 

해결: #123

참고: #456, #789

 

마무리

본 글의 내용은 다음 글들을 참고하여 정리한 것이다.

 


 

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음

댓글

Designed by JB FACTORY