Skip to content

Commit Convention

Lee Chae Min edited this page May 8, 2023 · 4 revisions

✔️ Commit Convention

type: Subject -> 제목  
(한칸 띄우기)  
body(생략 가능) -> 본문  
(한칸 띄우기)  
footer(생략 가능) -> 꼬리말  

✏️ Commit Type

Type 설명
feat: 새로운 기능 추가
fix: 버그 수정 또는 typo
docs: 문서 변경
style: 빈칸, 코드 포맷팅, 세미콜론 누락 등 코드 변경이 없는 경우
comment: 주석 변경 및 추가
refactor: 리팩토링
perf: 코드 변경으로 인해 성능이 향상된 경우
test: 테스트(테스트 코드 추가, 수정, 삭제 등 비즈니스 로직에 변경이 없는 경우)
ci: CI 환경설정 파일이나 스크립트 변경(ex. GitHub Actions, Jenkins)
chore: 위에 타입에 포함되지 않는 기타 변경사항(빌드 스크립트 수정, assets image, 패키지 매니저 등)
init: 프로젝트 초기 생성
rename: 파일 혹은 폴더명 수정하거나 옮기는 경우
remove: 파일을 삭제하는 작업만 수행하는 경우
revert 이전 커밋으로 되돌리는 경우

📌 Subject Rule

  1. 제목은 최대 50글자 넘지 않기
  2. 마침표 및 특수기호 사용 X
  3. 첫 글자 대문자, 명령문 사용
  4. 개조식 구문으로 작성(간결하고 요점적인 서술)

📌 Body Rule

  1. 한 줄당 72자 내로 작성
  2. 최대한 상세히 작성
  3. 어떻게 보다는 '무엇을', '왜' 변경했는지에 대해 작성

📌 Footer Rule

  1. 유형 #이슈 번호의 형식으로 작성(유형 다음에 콜론(:)이 오면 안된다.)
  2. 이슈 트래커 ID를 작성
  3. 여러개의 이슈 번호는 ,로 구분
  4. 이슈 트래커 유형은 아래와 같다
Issue Tracker 설명
fixes 이슈 수정중(아직 해결되지 않은 경우)
resolves 이슈를 해결한 경우
ref 참조할 이슈가 있을 때 사용
related to 해당 커밋에 관련된 이슈 번호(아직 해결되지 않은 경우)

ex) Footer에 fixes #1 이라고 작성하고 commit을 할 경우 자동으로 issue #1와 매칭이 된다. 또한, resolves #1으로 이슈를 해결했다고 명시하면 그 이슈는 사라진다.

📝 Commit Template

# 제목은 최대 50글자까지 아래에 작성: ex) feat: Add Key mapping  

# 본문은 아래에 작성  

# 꼬릿말은 아래에 작성: ex) Github issue #23  

# --- COMMIT END ---  
#   <타입> 리스트  
#   feat        : 기능 (새로운 기능)  
#   fix         : 버그 (버그 수정)  
#   docs        : 문서 수정 (문서 추가, 수정, 삭제, README)  
#   style       : 스타일 (코드 형식, 세미콜론 추가: 비즈니스 로직에 변경 없음)  
#   comment     : 필요한 주석 추가 및 변경  
#   refactor    : 리팩토링  
#   perf        : 성능 향상  
#   test        : 테스트 (테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없음)  
#   ci          : CI 환경설정 파일이나 스크립트 변경
#   chore       : 기타 변경사항 (빌드 스크립트 수정, assets, 패키지 매니저 등)  
#   init        : 초기 생성  
#   rename      : 파일 혹은 폴더명을 수정하거나 옮기는 작업만 한 경우  
#   remove      : 파일을 삭제하는 작업만 수행한 경우  
#   revert      : 이전 커밋으로 되돌리는 경우
# ------------------  
#   제목 첫 글자를 대문자로  
#   제목은 명령문으로  
#   제목 끝에 마침표(.) 금지  
#   제목과 본문을 한 줄 띄워 분리하기  
#   본문은 "어떻게" 보다 "무엇을", "왜"를 설명한다.  
#   본문에 여러줄의 메시지를 작성할 땐 "-"로 구분  
# ------------------  
#   <꼬리말>  
#   필수가 아닌 optioanl  
#   fixes        : 이슈 수정중 (아직 해결되지 않은 경우)  
#   resolves     : 이슈 해결했을 때 사용  
#   ref          : 참고할 이슈가 있을 때 사용  
#   related to   : 해당 커밋에 관련된 이슈번호 (아직 해결되지 않은 경우)  
#   ex) fixes #47 related to #32, #21