처누

커밋 컨벤션(Commit Convention) 본문

우테코

커밋 컨벤션(Commit Convention)

처누 2023. 10. 22. 13:11

 커밋 컨벤션은 우테코 프리코스 후기를 찾아보면서 가장 많이 봤던 글 중 하나이다. Git에서 하는 커밋은 알고 있는데 커밋 컨벤션? 처음 들어보는 용어라서 정리해보려고 한다.

 

 우리가 Git 커밋 메시지로 어떤 변경 사항이 있는지 남긴다. 하지만 다들 각각 자기 멋대로인 메시지를 남긴다면? 가독성과 유지, 보수도 힘들어 질 것이다. 

 

커밋 컨벤션(Commit Convention)

 - 일관된 형식의 커밋 메시지를 작성하기 위한 규칙, 관습적으로 사용되는 통용되는 가이드라인이 있지만, 프로젝트에 따라 별도의 규칙을 만들어 적용하기도 한다.

 

커밋 메시지 구조

 기본적인 커밋 메시지 구조는 제목, 본문 , 꼬리말로 구성한다.

type: subject

body

footer

 1. type

  •  타입은 "태그 + 제목"으로 구성되고, 첫 문자는 대문자로 한다.
  • "태그: 제목" 형태로 사용하며, '태그:' 뒤에 space(공백) 하나를 입력한 후 제목을 입력한다.
  • ex) Feat: add application api 
<타입> 리스트
feat        : 기능 (새로운 기능)
fix         : 버그 (버그 수정)
refactor    : 리팩토링
design      : CSS 등 사용자 UI 디자인 변경
comment     : 필요한 주석 추가 및 변경
style       : 스타일 (코드 형식, 세미콜론 추가: 비즈니스 로직에 변경 없음)
docs        : 문서 수정 (문서 추가, 수정, 삭제, README)
test        : 테스트 (테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없음)
chore       : 기타 변경사항 (빌드 스크립트 수정, assets, 패키지 매니저 등)
init        : 초기 생성
rename      : 파일 혹은 폴더명을 수정하거나 옮기는 작업만 한 경우
remove      : 파일을 삭제하는 작업만 수행한 경우
코드 리팩토링이란?
 - 이미 작성한 소스 코드에서 구현된 일련의 행위들을 변경없이 코드의 가독성과 유지보수성을 높이기 위해 내부구조를 변경하는 것. 
 - 기능을 유지하되 읽기 좋고 지속적으로 관리하기 편하게 소스코드를 재작성하는 것.

2. Subject

  • 코드의 변경 사항에 대해 짧은 요약을 작성한다.
  • 제목은 50자 이내명령조로 간결하게 작성한다.
  • 영문일 경우 대문자로 시작하고, 마침표를 사용하지 않는다.

3. Body

  • 선택사항
  • "어떻게" 보다 "무엇을", "왜"를 설명한다.(최대한 상세하게)
  • 한줄 당 72자 내로 작성하고, 필요한 경우 여러줄로 작성 가능(이 경우에 '-'로 구분)

4. Footer

  • 선택사항
  • issue tracker id를 작성한다.
  • "유형: #이슈 번호" 형태로 사용하고, 여러개의 이슈 번호를 적을 경우 '쉼표(,)'로 구분한다.
  • ex) Fixes: #47 Related to: #32, #21
<꼬리말> 유형
Fixes        :이슈 수정중 (아직 해결되지 않은 경우)
Resolves     : 이슈 해결했을 때 사용
Ref          : 참고할 이슈가 있을 때 사용
Related to   : 해당 커밋에 관련된 이슈번호 (아직 해결되지 않은 경우)

5. Commit 예시

Feat: 추가 login 기능

아이디 중복확인 APi 개발

Resolve: #12
Related to: #31, #42

 

 

출처 및 참고

https://velog.io/@msung99/Git-Commit-Message-Convension

https://velog.io/@shin6403/Git-git-%EC%BB%A4%EB%B0%8B-%EC%BB%A8%EB%B2%A4%EC%85%98-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

https://yozm.wishket.com/magazine/detail/1974/