브레인벤쳐스 기술블로그 커밋규칙
- Authors
- 송기영
Commit Message Rules
- 제목과 본문을 빈 행으로 구분한다.
- 제목은 50글자 이내로 제한한다.
- 제목의 첫 글자는 대문자로 작성한다.
- 제목 끝에는 마침표를 넣지 않는다.
- 제목은 명령문으로 사용하며 과거형을 사용하지 않는다.
- 본문의 각 행은 72글자 내로 제한한다.
- 어떻게 보다는 무엇과 왜를 설명한다.
Commit Message Structure
아이콘 [Type]: Header 내용입니다. // 제목
Body 내용입니다. // 본문
Footer 내용입니다. // 바닥글(선택)
아이콘(Icon)
아이콘은 Visual Studio Code Extensions의 Gimoji를 사용한다.
아이콘은 생략이 가능하며 사용할 경우 기본적으로 Gimoji의 적혀있는 규칙에 따라 아이콘을 부여한다.
자주 사용하는 아이콘
아이콘 | 코드 | 내용 |
---|---|---|
🎉 | :tada: | 프로젝트 시작 시 사용한다. |
🎨 | :art: | 코드의 구조/포맷을 개선 시 사용한다. |
⚡️ | :zap: | 퍼포먼스 개선 시 사용한다. |
🔥 | :fire: | 코드나 파일 삭제 시 사용한다. |
🐛 | :bug: | 버그 수정 시 사용한다. |
✨ | :sparkles: | 새로운 기능을 구현 시 사용한다. |
🚩 | :triangular_flag_on_post: | 기존 기능 추가, 수정, 삭제 시에 사용한다. |
🍱 | :bento: | 에셋 파일 추가, 수정 시 사용한다. |
💄 | :lipstick: | UI/스타일 파일을 추가, 수정 시에 사용한다. |
➕ | :heavy_plus_sign: | 라이브러리 추가 시 사용한다. |
➖ | :heavy_minus_sign: | 라이브러리 삭제 시 사용한다. |
✅ | :white_check_mark: | 테스트 추가, 수정, 패스 시에 사용한다. |
♻️ | :recycle: | 코드 리팩토링 시 사용한다. |
✏️ | :pencil2: | 오탈자/문구 등 추가, 수정, 삭제 시 사용한다. |
👽️ | :alien: | API 변경으로 인한 코드 수정 시 사용한다. |
🚚 | :truck: | 파일, 경로, 라우터 등 경로 이동, 이름 변경 시 사용한다. |
🔧 | :wrench: | 환경설정 파일 추가, 수정 시 사용한다. |
📝 | :memo: | 문서 추가, 수정 시 사용한다. |
🚧 | :construction: | 기능 구현 작업 중에 사용한다. |
💡 | :bulb: | 주석 추가, 수정 시 사용한다. |
🗃️ | :card_file_box: | 데이터베이스 관련 수정 시 사용한다. |
👥 | :busts_in_silhouette: | 생성자, 메타데이터 추가, 수정 시 사용한다. |
🏷️ | :label: | 타입 추가, 수정 시 사용한다. |
⚰️ | :coffin: | 죽은 코드 삭제 시 사용한다. |
🦺 | :safety_vest: | validation 관련 코드 추가, 수정 시 사용한다. |
전체 아이콘
아이콘 | 코드 | 내용 |
---|---|---|
🎨 | :art: | 코드의 구조/포맷을 개선 시 사용한다. |
⚡️ | :zap: | 퍼포먼스 개선 시 사용한다. |
🔥 | :fire: | 코드나 파일 삭제 시 사용한다. |
🐛 | :bug: | 버그 수정 시 사용한다. |
🚑 | :ambulance: | 운영 중 크리티컬한 버그 수정 시 사용한다. |
🩹 | :adhesive_bandage: | 크리티컬 하지 않은 이슈 수정 시 사용한다. |
✨ | :sparkles: | 새로운 기능을 구현 시 사용한다. |
📝 | :memo: | 문서 추가, 수정 시 사용한다. |
🚀 | :rocket: | 배포시 사용한다. |
💄 | :lipstick: | UI/스타일 파일을 추가, 수정 시에 사용한다. |
🎉 | :tada: | 프로젝트 시작 시 사용한다. |
✅ | :white_check_mark: | 테스트 추가, 수정, 패스 시에 사용한다. |
🔖 | :bookmark: | 릴리즈/버전 태그 시에 사용한다. |
🚨 | :rotating_light: | 컴파일러 수정, 린트 경고 시에 사용한다. |
🚧 | :construction: | 작업 진행 시에 사용한다. |
👷 | :construction_worker: | CI/CD 관련 내용 추가, 수정 시에 사용한다. |
⬇️ | :arrow_down: | 라이브러리 버전 다운그레이드 시 사용한다. |
⬆️ | :arrow_up: | 라이브러리 버전 업그레이드 시 사용한다. |
📌 | :pushpin: | 라이브러리 버전 고정 시 사용한다. |
📈 | :chart_with_upwards_trend: | 분석/코드 트랙킹 관련 내용 추가, 수정 시에 사용한다. |
♻️ | :recycle: | 코드 리팩토링 시 사용한다. |
➕ | :heavy_plus_sign: | 라이브러리 추가 시 사용한다. |
➖ | :heavy_minus_sign: | 라이브러리 삭제 시 사용한다. |
🔧 | :wrench: | 환경설정 파일 추가, 수정 시 사용한다. |
✏️ | :pencil2: | 오탈자/문구 등 추가, 수정, 삭제 시 사용한다. |
⏪️ | :rewind: | 커밋 revert 시 사용한다. |
🔀 | :twisted_rightwards_arrows: | 브랜치 merge 시 사용한다. |
👽️ | :alien: | 외부 API 변경으로 인한 코드 수정 시 사용한다. |
🚚 | :truck: | 파일, 경로, 라우터 등 경로 이동, 이름 변경 시 사용한다. |
📄 | :page_facing_up: | 라이센스 추가, 수정 시 사용한다. |
🍱 | :bento: | 에셋 파일 추가, 수정 시 사용한다. |
♿️ | :wheelchair: | 접근성 개선 시 사용한다. |
💡 | :bulb: | 주석 추가, 수정 시 사용한다. |
🗃️ | :card_file_box: | 데이터베이스 관련 수정 시 사용한다. |
🔊 | :loud_sound: | 로그 관련 내용 추가, 수정 시 사용한다. |
🔇 | :mute: | 로그 관련 내용 삭제 시 사용한다. |
👥 | :busts_in_silhouette: | 생성자 추가, 수정 시 사용한다. |
🏗️ | :building_construction: | 아키텍처 변경 시 사용한다. |
🙈 | :see_no_evil: | .gitignore 파일 추가, 수정 시 사용한다. |
🏷️ | :label: | 타입 추가, 수정 시 사용한다. |
🚩 | :triangular_flag_on_post: | 기존 기능 추가, 수정, 삭제 시에 사용한다. |
🥅 | :goal_net: | error 발견시 사용한다. |
🛂 | :passport_control: | authorization, roles and permissions 과 관련된 내용 수정 시 사용한다. |
⚰️ | :coffin: | 죽은 코드 삭제 시 사용한다. |
🧱 | :bricks: | 인프라 관련 사항 수정 시 사용한다. |
🦺 | :safety_vest: | validation 관련 코드 추가, 수정 시 사용한다. |
타입(Type)
타입은 해당 커밋의 성격을 나타내며 아래 중에 선택해야 한다.
타입 | 내용 |
---|---|
Init | 프로젝트 생성 |
Feat | 기능에 대한 커밋 |
Fix | 버그 수정에 대한 커밋 |
Build | 빌드 관련 파일 수정/모듈 설치 또는 삭제에 대한 커밋 |
Chore | 그 외 자잘한 수정에 대한 커밋 |
Ci | CI/CD관련 설정 수정에 대한 커밋 |
Docs | 문서 수정에 대한 커밋 |
Style | 코드 스타일 혹 포맷 등에 관한 커밋 |
Refactor | 코드 리팩토링에 대한 커밋 |
Test | 테스트 코드 수정에 대한 커밋 |
Pref | 성능 개선에 대한 커밋 |
제목(Header)
제목은 간략한 Commit 메시지에 대한 요약을 적으며 필수로 적어야 한다.
본문(Body)
본문은 제목에서 표현할 수 없는 상세한 내용을 적는다.
제목에서 모든 내용을 표현할 수 있다면 본문은 생략 가능하다.
바닥글(Footer)
바닥글은 어떤 이슈에서 왔는지 같은 참조 정보들을 추가하는 용도로 사용한다.
예를 들어 특정 이슈를 참조하려면 Issues #1234와 같이 작성하면 된다.
참조 정보 같은 내용이 없다면 바닥글은 생략 가능하다.
// 제목, 본문, 바닥글
git commit -m ":zap: [Feat]: 브레인벤쳐스 상단바 스타일 적용
드로그 앤 드랍 기능 적용완료.
resolves: #1234"
// 제목
git commit -m ":zap: [Feat]: 테스트입니다"