naming Convention: 이름 짓는 약속
예) camelCase(카멜 케이스), snake_case(스네이크 케이스), PascalCase(파스칼 케이스)
Git Commit Message Convention
위와 같이 이름을 짓는 약속을 하듯이 Commit message에 대한 약속이다.
협업 시 필수적으로 알아야하는 내용이고 익숙해진다면 Git commit message 기록이 깨끗해지고 누가봐도 이해가 가능해질 수 있다.
Commit Meesage의 구조
1. 제목
1. 제목은 최대 50글자 넘지 않기
2. 마침표 및 특수기호 사용하지 않음
3. 첫 글자 대문자, 명령문 사용
4. 개조식 구문으로 작성(간결하고 요점적인 서술)
2. 본문 (생략 가능)
1. 한 줄당 72자 내로 작성
2. 최대한 상세히 작성
3. 어떻게 보다는 '무엇을', '왜' 변경했는지에 대해 작성
3. 꼬리말 (생략 가능)
1. Issue tracker ID 명시하고 싶은 경우에 작성
2. 유형: #이슈 번호 형식으로 작성
3. 여러 개의 이슈번호는 쉼표(,)로 구분
4. 이슈 트래커 유형
Issue Tracker | 설명 |
Fixes | 이슈 수정중 |
Resolves | 이슈 해결 |
Ref | 참조할 이슈가 있을 때 사용 |
Related to | 해당 커밋에 관련된 이슈 번호(미해결 시) |
ex)
Footer에 Fixes: #1 이라고 작성하고 commit을 할 경우, 자동으로 issue #1과 매칭
또한, Resolves: #1으로 이슈를 해결했다고 명시하면 그 이슈는 사라짐
Commit Type
Type | 설명 |
Feat | 새로운 기능 추가 |
Fix | 버그 수정 |
Refactor | 코드 리팩토링 |
Design | css 수정 |
Chore | 빌드 업무 수정, 패키지 매니저 수정 |
HOTFIX | 치명적인 버그를 급하게 수정 |
Docs | 문서 수정 |
Style | 코드 Formatting, 세미콜론 누락 |
Rename | 파일 및 폴더구조 변경 |
Test | 테스트 코드, 리팩토링 테스트 코드 추가 |
Remove | 파일 삭제 |
Modify | 코드 단순 수정 |
Init | 프로젝트 초기 생성 |
Commit Templete
# 제목은 최대 50글자까지 아래에 작성: ex) Feat: Add signin
# 본문은 최대 72글자까지 아래에 작성
# 꼬릿말은 아래에 작성: ex) Github issue #23
# --- COMMIT END ---
# 제목 <Type> 리스트
# feat : 기능 (새로운 기능)
# fix : 버그 (버그 수정)
# refactor : 리팩토링
# design : CSS 등 사용자 UI 디자인 변경
# comment : 필요한 주석 추가 및 변경
# style : 스타일 (코드 형식, 세미콜론 추가: 비즈니스 로직에 변경 없음)
# docs : 문서 수정 (문서 추가, 수정, 삭제, README)
# test : 테스트 (테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없음)
# chore : 기타 변경사항 (빌드 스크립트 수정, assets, 패키지 매니저 등)
# init : 초기 생성
# rename : 파일 혹은 폴더명을 수정하거나 옮기는 작업만 한 경우
# remove : 파일을 삭제하는 작업만 수행한 경우
# 제목 첫 글자를 대문자
# 제목은 명령문
# 마침표 및 특수기호 금지
# 과거 시제는 사용하지 않고 동사
# 간결하고 요점 중심, 개조식 구문으로 작성
# ------------------
# 본문은 필수가 아닌 optioanl
# 제목과 본문을 한 줄 띄워 분리
# 본문은 "어떻게" 보다 "무엇을", "왜"를 설명
# 본문에 여러줄의 메시지를 작성할 땐 "-"로 구분
# ------------------
# 꼬리말은 필수가 아닌 optioanl
# 꼬리말 <Issue Tracker> 리스트
# Fixes :이슈 수정중 (아직 해결되지 않은 경우)
# Resolves : 이슈 해결했을 때 사용
# Ref : 참고할 이슈가 있을 때 사용
# Related to : 해당 커밋에 관련된 이슈번호 (아직 해결되지 않은 경우)
# ex) Fixes: #7 Related to: #2, #3
1. 본인이 원하는 경로에 gitmessage.txt 파일을 생성
2. 내용은 위 템플릿 내용 삽입 (#은 주석)
3. 아래 명령을 입력한다. (gitmeesage.txt 파일이 있는 파일 경로만 변경)
$ git config --global commit.template [본인의 폴더 경로]\.gitmessage.txt
4. 아래 명령어를 통해 앞전에 만들었던 vim의 메시지가 보이는 것을 확인
$ git commit
Commit Message Emogi(gitmogi)
Emoji | 설명 |
🎨 | 코드의 형식 / 구조를 개선 할 때 |
📰 | 새 파일을 만들 때 |
📝 | 사소한 코드 또는 언어를 변경할 때 |
🐎 | 성능을 향상시킬 때 |
📚 | 문서를 쓸 때 |
🐛 | 버그 reporting할 때, @FIXME 주석 태그 삽입 |
🚑 | 버그를 고칠 때 |
🐧 | 리눅스에서 무언가를 고칠 때 |
🍎 | Mac OS에서 무언가를 고칠 때 |
🏁 | Windows에서 무언가를 고칠 때 |
🔥 | 코드 또는 파일 제거할 때 , @CHANGED주석 태그와 함께 |
🚜 | 파일 구조를 변경할 때 . 🎨과 함께 사용 |
🔨 | 코드를 리팩토링 할 때 |
☔️ | 테스트를 추가 할 때 |
🔬 | 코드 범위를 추가 할 때 |
💚 | CI 빌드를 고칠 때 |
🔒 | 보안을 다룰 때 |
⬆️ | 종속성을 업그레이드 할 때 |
⬇️ | 종속성을 다운 그레이드 할 때 |
⏩ | 이전 버전 / 지점에서 기능을 전달할 때 |
⏪ | 최신 버전 / 지점에서 기능을 백 포트 할 때 |
👕 | linter / strict / deprecation 경고를 제거 할 때 |
💄 | UI / style 개선시 |
♿️ | 접근성을 향상시킬 때 |
🚧 | WIP (진행중인 작업)에 커밋, @REVIEW주석 태그와 함께 사용 |
💎 | New Release |
🔖 | 버전 태그 |
🎉 | Initial Commit |
🔈 | 로깅을 추가 할 때 |
🔇 | 로깅을 줄일 때 |
✨ | 새로운 기능을 소개 할 때 |
⚡️ | 도입 할 때 이전 버전과 호환되지 않는 특징, @CHANGED주석 태그 사용 |
💡 | 새로운 아이디어, @IDEA주석 태그 |
🚀 | 배포 / 개발 작업 과 관련된 모든 것 |
🐘 | PostgreSQL 데이터베이스 별 (마이그레이션, 스크립트, 확장 등) |
🐬 | MySQL 데이터베이스 특정 (마이그레이션, 스크립트, 확장 등) |
🍃 | MongoDB 데이터베이스 특정 (마이그레이션, 스크립트, 확장 등) |
🏦 | 일반 데이터베이스 별 (마이그레이션, 스크립트, 확장명 등) |
🐳 | 도커 구성 |
🤝 | 파일을 병합 할 때 |
위 이모지를 커밋메시지 가장 앞에 추가하면 더욱 좋다.
자세한 내용은 아래에서 확인 가능하다.
gitmoji
:truck: Move or rename resources (e.g.: files, paths, routes).
gitmoji.dev
'개발 환경세팅 > Git, Github' 카테고리의 다른 글
[Git/Github] Fetch, Diff, Cheery-pick, Merge, Rebase (0) | 2024.09.17 |
---|---|
[Git/Github] Submodule 정리 (0) | 2024.09.16 |
[Github] 로컬 저장소 깃허브에 연결하기 (0) | 2024.04.30 |
[Github] Git CLI와 GitHub CLI, git CLI vs gh CLI (0) | 2024.01.07 |
[Github] GitHub 계정에 새 SSH 키 추가하는 방법 (0) | 2023.06.27 |
댓글