Git Commit Message Convention

이선민·2022년 1월 21일
0

메시지 구조

커밋 메시지는 크게 제목, 본문, 꼬리말 세 가지 파트로 나누고, 각 파트는 빈 줄을 두어서 구분한다.

type(scope): subject // 제목

body(optional)  // 본문

footer(optional) // 꼬리말

commit type

어떤 의도로 커밋 했는지를 type에 명시한다.
태그: 제목

Feat: 새로운 기능 추가
Fix: 버그 수정
Docs: 문서 수정
Design: CSS 등 사용자 UI 디자인 변경
Style: 코드 포맷 변경, 세미콜론 누락, 코드 수정이 없는 경우
Comment: 필요한 주석 추가 및 변경
Refactor: 코드 리팩토링
Test: 테스트 코드, 테스트 리팩토링
Chore: 빌드 업무 수정, 패키지 매니저 수정
Rename: 파일 또는 폴더명을 수정하거나 옮기는 작업
Remove: 파일을 삭제하는 작업

scope -> 추가적인 문맥 정보를 제공하기 위한 목적으로 괄호 안에 적을 수도 있다.
ex) "Fix(database): ", "Feat(navigation): "

subject

제목은 50자를 넘지 않도록 하고, 마침표는 붙이지 않는다.
과거시제를 사용하지 않고 명령어로 작성하고, 영문으로 표기하는 경우 대문자로 시작한다.
"Fixed" -> "Fix"
"Added" -> "Add"
"Changed", "Changes" -> "Change"

body

선택사항이기 때문에 모든 커밋에 본문 내용을 작성할 필요는 없다.
부연 설명이 필요하거나 커밋의 이유를 설명할 경우 작성한다. -> 어떻게 했는지가 아니라, 무엇을 왜 했는지를 작성
72자를 넘기지 않고 제목과 구분되기 위해 한 칸을 띄워 작성한다.

선택사항이기 때문에 모든 커밋에 꼬리말을 작성할 필요는 없다.
issue tracker id를 명시하고 싶은 경우에 작성한다.

Fixes: 이슈 수정 중(아직 해결되지 않은 경우)
Resolves: 이슈를 해결했을 때
Ref: 참고할 이슈가 있을 때
Related to: 해당 커밋에 관련된 이슈 번호(아직 해결되지 않은 경우)

ex)
유형: #이슈번호
Fixes: #45
Related to: #34, #23


example

Feat: 추가 로그인 함수

로그인 API 개발

Resolves: #123
Ref: #456
Related to: #48, #45

0개의 댓글