좋은 커밋 메시지는 코드 리뷰를 원활하게 할 수 있도록 돕고, 브랜치 생성 지점, cherry-pick 지점 등을 쉽게 파악할 수 있도록 하여 개발 협업에도 도움을 줍니다. 아래는 동아리에서 기본적으로 권장하는 컨벤션이며, AngularJS Git Commit Convention 및 Udacity Git Commit Convntion을 참고했습니다.
- 커밋은 시간 순서대로 쌓는다.
- 커밋 제목은 히스토리로부터 변경 내역을 쉽게 알 수 있도록 적는다.
- 서로 밀접한 연관 또는 종속성을 갖는 변경내역은 하나의 커밋으로 합친다.
- 커밋 제목에는 반드시 접두사를 붙인다.
<접두사>: <제목>
<본문 - 필요한 경우>
<연관 이슈>
- <제목>은 한 줄이 적합하다.
- <제목>에는 마침표를 찍지 않는다.
- 필요한 경우 <본문>에 상세 설명을 덧붙인다.
- <연관 이슈>에는 참고할 이슈 또는 닫을 이슈를 적는다.
- 닫을 이슈: 'Closes: #200, #201'
- 참고할 이슈: 'See also: #100, #101'
타입 | 설명 |
---|---|
feat | 기능, 사용자 경험에 변경이 있는 경우 (모든 커밋은 기본적으로 feat) |
refactor | 기능, 사용자 경험에 변경 없이 코드 구조를 개선한 경우 (패키지 변경, 변수명 변경, 가독성 개선 등) |
fix | 이슈 또는 버그 해결 |
style | 들여쓰기, 공백 등 코드 스타일 또는 여백/글자 크기 등 UI 요소의 변경 |
docs | 주석, README.md 등 문서의 변경 |
chore | 라이브러리 업데이트 및 기타 변경사항 |
| Q. 커밋에는 몇 개의 파일이 적당할까요?
: 파일 개수에는 제한이 없습니다. 단, 커밋은 서로 연관성이 있는 변경들을 단위로 하되 되도록 작게 유지해야 합니다. 버그의 원인이 되는 함수를 수정했을 때, 이 함수를 호출하는 부분의 변경도 하나의 커밋에 담아야 합니다.