컨벤션은 협약이라는 의미처럼 여러 사람이 지켜야 할 일종의 룰입니다. 따라서 개발자들이 협업 과정에서 컨벤션을 지킨다면 다음과 같은 이점이 있습니다.
- 더 좋은 가독성
- 더 좋은 유지 보수
- 더 좋은 협업과 관리
커밋 컨벤션은 git 커밋 메세지를 위한 컨벤션입니다. git 커밋을 이용해 더 나은 로그 가독성, 리뷰 프로세스, 코드 유지 보수를 할 수 있습니다.
커밋 메세지는 제목, 본문, 꼬리말로 구성되어 있고 각자 빈 줄을 두어 구분합니다. 제목을 제외한 나머지는 옵션이지만 웬만하면 지키고 싶어 옵션을 지웠습니다. ( 꼬리말은 제외
)
타입 : [#이슈 번호 - ] 제목
본문
꼬리말(옵션)
커밋 메세지가 어떤 의도를 가진 메세지인지 알립니다.
태그와 제목으로 구성되어 있고 사용법은 태그: 제목의 형태입니다. (: 뒤에만 space가 있다 !
)
ex) Feat: Infinity Scroll 추가
태그 | 의도 | 태그 | 의도 |
---|---|---|---|
✔️ Feat | 새 기능 추가 | ✔️ Fix | 버그 수정 |
✔️ Design | CSS, UI 변경 | ✔️ Style | 포맷 변경 등 코드 수정이 없는 경우 |
✔️ Refactor | 코드 리팩토링 | ✔️ Comment | 주석 추가 |
✔️ Docs | 문서 수정 | Test | 테스트 추가, 리팩토링 |
✔️ Rename | 파일명 수정, 이동 | ✔️Remove | 파일 삭제 |
Chore | 패키지 매니저 설정 | !HOTFIX | 급한 버그 수정 |
!BREAKING CHANGE |
커다란 API 변경 |
제목은 메세지의 짧은 요약입니다. 다음과 같은 규칙을 가집니다.
- "고침", "추가", "변경" 등 명령조로 시작합니다. ( 영어의 경우 동사 원형 )
- 총 글자는 50자 이내
- 마지막에 특수문자 삽입 X
- 개조식 구문 ( 간결, 요점적인 서술 )
Feat: 추가 Infinty Scroll 기능
본문은 다음과 같은 규칙을 가집니다.
- 한 줄 당 72자 내외
- 최대한 상세히 작성
- 어떻게보단 무엇, 왜에 중점적으로
Feat: 추가 Infinity Scroll 기능
- react-intersection-observer 패키지 사용
- intersection 관측 시 다음 page API 호출
- 이슈 트래커 ID를 작성합니다.
"유형: #이슈 번호"
- 여러 개의 이슈 번호는 쉼표로 구분합니다.
- 이슈 트래커 유형
- Fixes: 이슈 수정 중 ( 아직 미해결 )
- Resolves: 이슈 해결
- Ref: 참고할 이슈
- Related to: 해당 커밋과 관련된 이슈 번호 ( 아직 미해결 )
Feat: 추가 Infinity Scroll 기능
- react-intersection-observer 패키지 사용
- intersection 관측 시 다음 page API 호출
Reslves: #321