logo

브레인벤쳐스 기술블로그 커밋규칙

Authors
  • avatar
    송기영

Commit Message Rules

  1. 제목과 본문을 빈 행으로 구분한다.
  2. 제목은 50글자 이내로 제한한다.
  3. 제목의 첫 글자는 대문자로 작성한다.
  4. 제목 끝에는 마침표를 넣지 않는다.
  5. 제목은 명령문으로 사용하며 과거형을 사용하지 않는다.
  6. 본문의 각 행은 72글자 내로 제한한다.
  7. 어떻게 보다는 무엇과 왜를 설명한다.

Commit Message Structure

아이콘 [Type]: Header 내용입니다. // 제목

Body 내용입니다.                // 본문

Footer 내용입니다.              // 바닥글(선택)

아이콘(Icon)

아이콘은 Visual Studio Code Extensions의 Gimoji를 사용한다.

아이콘은 생략이 가능하며 사용할 경우 기본적으로 Gimoji의 적혀있는 규칙에 따라 아이콘을 부여한다.

gitmoji 링크

자주 사용하는 아이콘

아이콘코드내용
🎉: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그 외 자잘한 수정에 대한 커밋
CiCI/CD관련 설정 수정에 대한 커밋
Docs문서 수정에 대한 커밋
Style코드 스타일 혹 포맷 등에 관한 커밋
Refactor코드 리팩토링에 대한 커밋
Test테스트 코드 수정에 대한 커밋
Pref성능 개선에 대한 커밋

제목(Header)

제목은 간략한 Commit 메시지에 대한 요약을 적으며 필수로 적어야 한다.

본문(Body)

본문은 제목에서 표현할 수 없는 상세한 내용을 적는다.

제목에서 모든 내용을 표현할 수 있다면 본문은 생략 가능하다.

바닥글(Footer)

바닥글은 어떤 이슈에서 왔는지 같은 참조 정보들을 추가하는 용도로 사용한다.

예를 들어 특정 이슈를 참조하려면 Issues #1234와 같이 작성하면 된다.

참조 정보 같은 내용이 없다면 바닥글은 생략 가능하다.

// 제목, 본문, 바닥글
git commit -m ":zap: [Feat]: 브레인벤쳐스 상단바 스타일 적용

드로그 앤 드랍 기능 적용완료.

resolves: #1234"
// 제목
git commit -m ":zap: [Feat]: 테스트입니다"