Posts Git Commit Convention
Post
Cancel

Git Commit Convention

Commit Convention

Udacity Git Commit Message Style Guide 를 참고하여 아래와 같은 규칙으로 사용합니다.

메세지 구조

커밋 메세지는 크게 제목, 본문, 꼬리말 3가지 파트로 나눕니다.

각 파트는 빈 줄을 두어 구분합니다.

1
2
3
4
5
**tag**(옵션): **Subject** [#issue_number]  // -> 제목
(한 줄을 띄워 분리합니다.)
**body**(옵션) //  -> 본문
(한 줄을 띄워 분리합니다.)
**footer**(옵션) // -> 꼬리말
  • tag : 어떤 의도로 커밋했는지를 tag에 명시합니다. 자세한 사항은 아래서 설명하겠습니다.
  • subject : 최대 50글자가 넘지 않도록 하고 마침표는 찍지 않습니다. 영문으로 표기하는 경우 동사(원형)를 가장 앞에 두고 첫 글자는 대문자로 표기합니다.
  • body : 긴 설명이 필요한 경우에 작성합니다. 어떻게 했는지가 아니라, 무엇을  했는지를 작성합니다. 최대 75자를 넘기지 않도록 합니다.
  • footer : issue tracker ID를 명시하고 싶은 경우에 작성합니다.

제목 (필수)

제목은 tag: subject 형태이며, : 뒤에 공백(space)를 추가합니다.

태그의 종류는 아래와 같습니다.

기능 관련 태그 
Feat새로운 기능을 추가할 경우
Fix버그를 고친 경우
DesignCSS 등 사용자 UI 디자인 변경
!BREAKING CHANGE커다란 API 변경의 경우
!HOTFIX급하게 치명적인 버그를 고쳐야하는 경우
개선 관련 태그 
Style오타 수정, 탭 사이즈 변경, 변수명 변경, 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우
Refactor프로덕션 코드 리팩토링
Comment필요한 주석 추가 및 변경
기타 
Docs문서를 수정한 경우
Test테스트 추가, 테스트 리팩토링(프로덕션 코드 변경 X). test 폴더 내부의 변경이 일어난 경우만 해당
Chore빌드 태스크 업데이트, 패키지 매니저를 설정하는 경우(프로덕션 코드 변경 X) package.json 변경, dotenv 요소 변경, 모듈 변경.
Rename파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
Remove파일을 삭제하는 작업만 수행한 경우

예시는 아래와 같습니다.

1
Feat: Add apiManager using Axios #3

한글로 작성 가능합니다.

1
Feat: Axios 를 이용한 apiManager 구현 #3

본문 (선택)

본문은 다음의 규칙을 지킵니다.

  1. 본문은 한 줄 당 72자 내로 작성합니다.
  2. 본문 내용은 양에 구애받지 않고 최대한 상세히 작성합니다.
  3. 본문 내용은 어떻게 변경했는지 보다 무엇을 변경했는지 또는 왜 변경했는지를 설명합니다.

예시는 아래와 같습니다.

Backend와 API 통신 시 모든 request 에 JWT 토큰을 담기 위해 apiManager 를 개발했습니다. (이하 생략)

꼬리말 (선택)

꼬리말은 다음의 규칙을 지킵니다.

  1. 꼬리말은 optional이고 이슈 트래커 ID를 작성합니다.
  2. 꼬리말은 “유형: #이슈 번호” 형식으로 사용합니다.
  3. 여러 개의 이슈 번호를 적을 때는 쉼표로 구분합니다.
  4. 이슈 트래커 유형은 다음 중 하나를 사용합니다.
    • Fixes: 이슈 수정중 (아직 해결되지 않은 경우)
    • Resolved: 이슈를 해결했을 때 사용
    • Ref: 참고할 이슈가 있을 때 사용
    • Related to: 해당 커밋에 관련된 이슈번호 (아직 해결되지 않은 경우)

예시는 아래와 같습니다.

1
Fixes: #45 Related to: #34, #23

Commit Message Emoji (선택)

커밋 메세지의 태그를 알아보기 쉽게 이모지를 사용할 수 있습니다.

다만, 이모지 입력이 필수는 아닙니다.

이모지의 종류와 설명은 아래와 같습니다.

아이콘설명원문
🎨코드의 구조/형태 개선Improve structure / format of the code.
⚡️성능 개선Improve performance.
🔥코드/파일 삭제, @CHANGED 주석 태그와 함께 사용Remove code or files.
🐛버그 수정Fix a bug.
🚑긴급 수정Critical hotfix.
새 기능Introduce new features.
📝문서 추가/수정Add or update documentation.
💄UI/스타일 파일 추가/수정Add or update the UI and style files.
🎉프로젝트 시작Begin a project.
테스트 추가/수정Add or update tests.
🔒보안 이슈 수정Fix security issues.
🔖릴리즈/버전 태그Release / Version tags.
💚CI 빌드 수정Fix CI Build.
📌특정 버전 의존성 고정Pin dependencies to specific versions.
👷CI 빌드 시스템 추가/수정Add or update CI build system.
📈분석, 추적 코드 추가/수정Add or update analytics or track code.
♻️코드 리팩토링Refactor code.
의존성 추가Add a dependency.
의존성 제거Remove a dependency.
🔧구성 파일 추가/삭제Add or update configuration files.
🔨개발 스크립트 추가/수정Add or update development scripts.
🌐국제화/현지화Internationalization and localization.
💩똥싼 코드Write bad code that needs to be improved.
변경 내용 되돌리기Revert changes.
🔀브랜치 합병Merge branches.
📦컴파일된 파일 추가/수정Add or update compiled files or packages.
👽외부 API 변화로 인한 수정Update code due to external API changes.
🚚리소스 이동, 이름 변경Move or rename resources (e.g.: files paths routes).
📄라이센스 추가/수정Add or update license.
💡주석 추가/수정Add or update comments in source code.
🍻술 취해서 쓴 코드Write code drunkenly.
🗃데이버베이스 관련 수정Perform database related changes.
🔊로그 추가/수정Add or update logs.
🙈.gitignore 추가/수정Add or update a .gitignore file.

이모지를 간편하게 입력할 수 있는 방법을 2가지 소개합니다.

2가지 중에 하나만 선택해서 설치해도 되고, 2가지 모두 설치해서 사용해도 됩니다.

Visual Studio Code Extension

Visual Studio Code 에서는 GUI 환경으로 간편하게 사용할 수 있는 Gitmoji 확장 프로그램이 있습니다.

간편하게 이모지 종류와 이모지의 설명을 확인할 수 있습니다.

아래의 링크를 클릭하여 설치할 수 있습니다.

  • 링크 : https://marketplace.visualstudio.com/items?itemName=seatonjiang.gitmoji-vscode

실제 사용 화면은 아래와 같습니다.

gitmoji.gif

gitmoji-cli

터미널에서 소스를 커밋할 때 gitmoji-cli 를 이용하면 이모지를 함께 커밋에 포함할 수 있습니다.

아래의 명령어를 실행해서 설치할 수 있습니다.

1
2
3
4
5
6
7
# npm 을 이용하는 경우 전역으로 설치
npm i -g gitmoji-cli

# or

# brew 를 이용하는 경우
brew install gitmoji

참고로 gitmoji-cli 는 npm 패키지가 필요해서 node.js 가 먼저 설치되어 있어야 합니다.

사용법은 아래의 순서를 따릅니다.

  • git add 명령어로 변경 사항을 스테이징 한다.
  • gitmoji -c 를 입력하면 커밋을 작성한다.
  • 태그에 해당하는 설명을 입력하면 자동으로 목록을 간추린다. 그 다음 원하는 태그를 선택한다.
  • 제목에 해당하는 내용을 입력한다.
  • 본문에 해당하는 내용을 입력한다.

실제 사용 화면은 아래와 같습니다.

gitmoji-cli.gif

참고자료

This post is licensed under CC BY 4.0 by the author.