참고 부분에 명시한 페이지 2곳을 참고하여 정리하였습니다.
type(옵션): [#issueNumber - ]Subject // -> 제목(한 줄을 띄워 분리합니다.)
body(옵션) // -> 본문 (한 줄을 띄워 분리합니다.)
footer(옵션) // -> 꼬리말
타입은 태그와 제목으로 구성되고, 태그는 영어로 쓰되 첫 문자는 대문자로 합니다.
"태그: 제목"의 형태이며, : 뒤에만 space
기능 | 태그 이름 | 설명 |
---|---|---|
기능 | Feat | 새로운 기능을 추가할 경우 |
Fix | 버그를 고친 경우 | |
Design | CSS 등 사용자 UI 디자인 변경 | |
!BREAKING CHANGE | 커다란 API 변경의 경우 | |
!HOTFIX | 급하게 치명적인 버그를 고쳐야하는 경우 | |
개선 | Style | 코드 포맷 변경, 세미콜론 누락, 코드 수정이 없는 경우 |
Refactor | 프로덕션 코드 리팩토링 | |
Comment | 필요한 주석 추가 및 변경 | |
그 외 | Docs | 문서를 수정한 경우 |
Test | 테스트 추가, 테스트 리팩토링(프로덕션 코드 변경 X) | |
Chore | 빌드 테스트 업데이트, 패키지 매니저를 설정하는 경우(프로덕션 코드 변경 X) | |
Rename | 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우 | |
Remove | 파일을 삭제하는 작업만 수행한 경우 |
추가적인 문맥 정보를 제공하기 위한 목적으로 괄호 안에 적을 수도 있습니다.
ex)
"Feat(navigation): "
"Fix(database): "
제목은 코드 변경 사항에 대한 짧은 요약
- 제목의 처음은 동사 원형으로 시작합니다.
- 총 글자 수는 50자 이내로 작성합니다.
- 마지막에 특수문자는 삽입하지 않습니다. 예) 마침표(.), 느낌표(!), 물음표(?)4. 제목은 개조식 구문으로 작성합니다.
만약 영어로 작성하는 경우 다음의 규칙을 따릅니다.
- 첫 글자는 대문자로 작성합니다.
- "Fix", "Add", "Change"의 명령어로 시작합니다.
한글로 제목을 작성하는 경우 다음의 규칙을 따릅니다.
- "고침", "추가", "변경"의 명령어로 시작합니다.
예시)Feat: "추가 get data api 함수"
제목에 엔터(줄바꿈) 2번
한 이후 설명 적기
- 본문은 한 줄 당 72자 내로 작성합니다.
- 본문 내용은 양에 구애받지 않고 최대한 상세히 작성합니다.
- 본문 내용은 어떻게 변경했는지 보다 무엇을 변경했는지 또는 왜 변경했는지를 설명합니다.
ex)
git commit -m "커밋 제목
부가 설명"
- 꼬리말은 optional이고 이슈 트래커 ID를 작성합니다.
- 꼬리말은 "유형: #이슈 번호" 형식으로 사용합니다.
- 여러 개의 이슈 번호를 적을 때는 쉼표로 구분합니다.
- 이슈 트래커 유형은 다음 중 하나를 사용합니다.
- Fixes: 이슈 수정중 (아직 해결되지 않은 경우)
- Resolves: 이슈를 해결했을 때 사용
- Ref: 참고할 이슈가 있을 때 사용
- Related to: 해당 커밋에 관련된 이슈번호 (아직 해결되지 않은 경우)ex) Fixes: #45 Related to: #34, #23
Feat: "추가 로그인 함수"
로그인 API 개발
Resolves: #123
Ref: #456
Related to: #48, #45
Emoji | Description |
---|---|
🎨 | 코드의 형식/구조를 개선 할 때 |
📰 | 새 파일을 만들 때 |
📝 | 사소한 코드 또는 언어를 변경할 때 |
🐎 | 성능을 향상시킬 때 |
📚 | 문서를 쓸 때 |
🐛 | 버그 reporting할 때, @FIXME 주석 태그 삽입 |
🚑 | 버그를 고칠 때 |
🐧 | 리눅스에서 무언가를 고칠 때 |
🍎 | Mac OS에서 무언가를 고칠 때 |
🏁 | Windows에서 무언가를 고칠 때 |
🔥 | 코드 또는 파일 제거할 때 , @CHANGED주석 태그와 함께 |
🚜 | 파일 구조를 변경할 때 . 🎨과 함께 사용 |
🔨 | 코드를 리팩토링 할 때 |
☔️ | 테스트를 추가 할 때 |
🔬 | 코드 범위를 추가 할 때 |
💚 | CI 빌드를 고칠 때 |
🔒 | 보안을 다룰 때 |
⬆️ | 종속성을 업그레이드 할 때 |
⬇️ | 종속성을 다운 그레이드 할 때 |
⏩ | 이전 버전 / 지점에서 기능을 전달할 때 |
⏪ | 최신 버전 / 지점에서 기능을 백 포트 할 때 |
👕 | linter / strict / deprecation 경고를 제거 할 때 |
💄 | UI / style 개선시 |
♿️ | 접근성을 향상시킬 때 |
🚧 | WIP (진행중인 작업)에 커밋, @REVIEW주석 태그와 함께 사용 |
💎 | New Release |
🔖 | 버전 태그 |
🎉 | Initial Commit |
🔈 | 로깅을 추가 할 때 |
🔇 | 로깅을 줄일 때 |
✨ | 새로운 기능을 소개 할 때 |
⚡️ | 도입 할 때 이전 버전과 호환되지 않는 특징, @CHANGED주석 태그 사용 |
💡 | 새로운 아이디어, @IDEA주석 태그 |
🚀 | 배포 / 개발 작업 과 관련된 모든 것 |
🐘 | PostgreSQL 데이터베이스 별 (마이그레이션, 스크립트, 확장 등) |
🐬 | MySQL 데이터베이스 특정 (마이그레이션, 스크립트, 확장 등) |
🍃 | MongoDB 데이터베이스 특정 (마이그레이션, 스크립트, 확장 등) |
🏦 | 일반 데이터베이스 별 (마이그레이션, 스크립트, 확장명 등) |
🐳 | 도커 구성 |
🤝 | 파일을 병합 할 때 |
커밋 메세지 템플릿을 적용할 git 프로젝트에 진입한 다음, .gitmessage.txt 파일을 생성합니다.
이제 그 파일 내용을 아래와 같이 수정합니다.
# <타입> : <제목> 형식으로 작성하며 제목은 최대 50글자 정도로만 입력
# 제목을 아랫줄에 작성, 제목 끝에 마침표 금지, 무엇을 했는지 명확하게 작성
################
# 본문(추가 설명)을 아랫줄에 작성
################
# 꼬릿말(footer)을 아랫줄에 작성 (관련된 이슈 번호 등 추가)
################
#Feat: 새로운 기능을 추가할 경우
#Fix: 버그를 고친 경우
#DesignCSS: 등 사용자 UI 디자인 변경
#!BREAKING: CHANGE|커다란 API 변경의 경우
#!HOTFIX: 급하게 치명적인 버그를 고쳐야하는 경우
#Style: 코드 포맷 변경, 세미콜론 누락, 코드 수정이 없는 경우
#Refactor: 프로덕션 코드 리팩토링
#Comment: 필요한 주석 추가 및 변경
#Docs: 문서를 수정한 경우
#Test: 테스트 추가, 테스트 리팩토링(프로덕션 코드 변경 X)
#Chore: 빌드 테스트 업데이트, 패키지 매니저를 설정하는 경우(프로덕션 코드 변경 X)
#Rename: 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
#Remove: 파일을 삭제하는 작업만 수행한 경우
################
#
으로 된 줄은 모두 주석처리된 곳이며, 비어 있는 첫 번째~세 번째 줄에 각각 작성하면 그것이 커밋 제목, 본문, 꼬릿말이 되는 것입니다. 위와 같이 파일 내용을 수정하고 저장합니다.
다음 아래 명령어를 입력합니다. <.gitmessage.txt 경로>
부분에는 위에서 생성한 파일의 경로를 입력하면 됩니다. (< > 제외)
git config --global commit.template <.gitmessage.txt 경로>
이제부터 git commit
입력 시, 위에서 지정한 템플릿 파일이 자동으로 뜨게 됩니다. 거기에서 커밋 제목, 본문, 꼬릿말 등
을 추가하면 됩니다.
이 때 터미널 환경에서 git commit
을 입력하면 vi 에디터 환경
으로 나올 것입니다. 작성할 때에는 키보드 i
키를 누르면 되며, 작성 완료하고 저장하려면 esc
키를 누른 다음 :wq!
를 입력하고 엔터를 누르시면 됩니다.
엄청 깔끔해 졌습니다! 앞으로 컨벤션 지키면서 커밋해보겠습니다.