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 |
| [Git, Github] 로컬 저장소 깃허브에 연결하기 (0) | 2024.04.30 |
| [Git, Github] Git CLI와 GitHub CLI, git CLI vs gh CLI (0) | 2024.01.07 |
| [Github] GitHub 계정에 새 SSH 키 추가하는 방법 (0) | 2023.06.27 |
댓글