지금까지는 내 나름의 규칙으로만 커밋 메세지를 작성해왔다.
아직까지 규모가 큰 팀 프로젝트를 진행하지 않아 무리는 없었지만, 이제는 커밋 메세지를 올바르게 작성하는 방법을 참고해 항상 유의하면서 작성하는 연습을 해보는게 좋을 것 같다.
헤더는 필수이며, 범위(scope), 본문(body), 바닥글(footer)은 선택사항
<type>(<scope>): <subject> -- 헤더
//<BLANK LINE>
<body> -- 본문
//<BLANK LINE>
<footer> -- 바닥글
알아보기 쉽게 예시로 보면, 다음과 같다.
Feat: 관심지역 알림 ON/OFF 기능 추가(#123)
시군구의 알림을 각각 ON/OFF 할 수 있도록 기능을 추가함
- opnion0055: 구분 코드 해결: #123
//출처: https://xtring-dev.tistory.com/entry/Git-규칙적인-Commit-메세지로-개발팀-협업하기-👾 [xtring.dev]
<type>
은 해당 커밋의 성격을 나타내며 아래 중 하나여야 한다.
feat : 새로운 기능에 대한 커밋
fix : 버그 수정에 대한 커밋
build : 빌드 관련 파일 수정에 대한 커밋
chore : 그 외 자잘한 수정에 대한 커밋
ci : CI관련 설정 수정에 대한 커밋
docs : 문서 수정에 대한 커밋
style : 코드 스타일 혹은 포맷 등에 관한 커밋
refactor : 코드 리팩토링에 대한 커밋
test : 테스트 코드 수정에 대한 커밋
<body>
는 본문으로 헤더로 표현할 수 없는 상세한 내용을 적는다.
헤더로 표현이 가능하다면 생략 가능하다.
한 줄당 72자 이하로 작성하며, 깃이 자동 줄바꿈을 지원하지 않으므로 직접 줄바꿈을 해야 한다.
<footer>
는 바닥글로 어떤 이슈에서 왔는지 같은 참조 정보들을 추가하는 용도로 사용한다. (이슈 트래커 ID참조)
예를 들어 특정 이슈를 참조하려면 close #1233 과 같이 추가
close는 이슈를 참조하면서 main브랜치로 푸시될 때 이슈를 닫게 된다.