웹/Git

내가 안 까먹을려고 쓰는 Git commit message convention

공대생철이 2023. 5. 12. 16:22
728x90

아직 대학생따리지만 동아리에서 프로젝트를 할 때 커밋 내용을 어떻게 써야할지 고민이 많았다.

 

개인 프로젝트는 혼자 막 갈겨 써도 이해할 수 있지만

협업하는 상황이라면 글을 쓸 때도 공통의 규칙이 있어야 상황파악이나 이후 업무 분배에 있어서도 더 수월할 것이다.

 

구글에다가 Git convention이라고 치면 정말 많은 자료가 나오는데

이제 커밋할 때마다 일일이 컨벤션 확인하고 쓰기 싫어서 아예 각 잡고 한 번 정리해보려고 한다.


1. Commit Message Structure

기본적인 커밋 메시지 구조는 이렇다. (각 파트는 빈줄로 구분한다.)

제목 (Type: Subject)
(한줄 띄어 분리)
본문 (Body)
(한줄 띄어 분리)
꼬리말 (Footer)

 

2. Commit Type

태그: 제목
:(space)제목 으로 :뒤에만 space를 넣는다.

 

위와 같은 형식으로 작성하게 되는데 사용 가능한 태그로는 아래와 같은 태그들이 있다.

Tag Name Description
Feat 새로운 기능을 추가
Fix 버그 수정
Design CSS 등 사용자 UI 디자인 변경
!BREAKING CHANGE 커다란 API 변경의 경우
!HOTFIX 급하게 치명적인 버그를 고쳐야 하는 경우
Style 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우
Refactor 프로덕션 코드 리팩토링
Comment 필요한 주석 추가 및 변경
Docs 문서 수정
Test 테스트 코드, 리팩토링 테스트 코드 추가, Production Code 변경 없음
Chore 빌드 업무 수정, 패키지 매니저 수정, 패키지 관리자 구성 등 업데이트, Production Code 변경 없음
Rename 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
Remove 파일을 삭제하는 작업만 수행한 경우

3. Subject

- 제목은 50글자 이내로 작성한다.

- 첫글자는 대문자로 작성한다.

- 마침표 및 특수기호는 사용하지 않는다.

- 영문으로 작성하는 경우 동사(원형)을 가장 앞에 명령어로 작성한다.

- 과거시제는 사용하지 않는다.

- 간결하고 요점적으로 즉, 개조식 구문으로 작성한다.

ex)

Fixed-> Fix

Added -> Add

Modified -> Modify

 

4. Body

- 72자 이내로 작성한다.

- 최대한 상세히 작성한다. (코드 변경의 이유를 명확히 작성할수록 좋다)

- 어떻게 변경했는지보다 무엇을, 왜 변경했는지 작성한다.

 

5. Footer

- 선택사항

- issue tracker ID 명시하고 싶은 경우 작성한다.

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

- 여러개의 이슈번호는 콤마(,)로 구분한다.

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

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

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

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

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

 

ex)

Fixes : #45 Related to :  #34, #23

 


복붙 안하고 일일이 하나씩 타이핑하니깐 이제 좀 머릿속에 들어오는 느낌이다.

여러글을 보던 와중에 이건 그저 하나의 가이드라인 중 하나일 뿐 회사마다 팀마다 스타일은 다를 수도 있다고 한다.

그래도 일단 이제 컨벤션 즉, 전통이니깐 특별한 가이드라인이 따로 없다면 이 컨벤션을 익혀두도록 하자.

728x90