git 커밋 컨벤션 및 템플릿 만들기

minkyeongJ·2022년 5월 29일
3

개발 tips

목록 보기
8/21
post-thumbnail

참고 부분에 명시한 페이지 2곳을 참고하여 정리하였습니다.

커밋 메시지 구조

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

제목 작성하는 법

타입 작성법

타입은 태그와 제목으로 구성되고, 태그는 영어로 쓰되 첫 문자는 대문자로 합니다.
"태그: 제목"의 형태이며, : 뒤에만 space

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

추가적인 문맥 정보를 제공하기 위한 목적으로 괄호 안에 적을 수도 있습니다.

ex)
"Feat(navigation): "
"Fix(database): "

제목 작성법

제목은 코드 변경 사항에 대한 짧은 요약

  1. 제목의 처음은 동사 원형으로 시작합니다.
  2. 총 글자 수는 50자 이내로 작성합니다.
  3. 마지막에 특수문자는 삽입하지 않습니다. 예) 마침표(.), 느낌표(!), 물음표(?)4. 제목은 개조식 구문으로 작성합니다.

만약 영어로 작성하는 경우 다음의 규칙을 따릅니다. 

  1. 첫 글자는 대문자로 작성합니다.
  2. "Fix", "Add", "Change"의 명령어로 시작합니다.

한글로 제목을 작성하는 경우 다음의 규칙을 따릅니다.

  1. "고침", "추가", "변경"의 명령어로 시작합니다.

예시)Feat: "추가 get data api 함수"

본문 작성법

제목에 엔터(줄바꿈) 2번 한 이후 설명 적기

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

부가 설명"

꼬리말 작성법

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

로그인 API 개발

Resolves: #123
Ref: #456
Related to: #48, #45

커밋 메시지 이모지

EmojiDescription
🎨코드의 형식/구조를 개선 할 때
📰새 파일을 만들 때
📝사소한 코드 또는 언어를 변경할 때
🐎성능을 향상시킬 때
📚문서를 쓸 때
🐛버그 reporting할 때, @FIXME 주석 태그 삽입
🚑버그를 고칠 때
🐧리눅스에서 무언가를 고칠 때
🍎Mac OS에서 무언가를 고칠 때
🏁Windows에서 무언가를 고칠 때
🔥코드 또는 파일 제거할 때 , @CHANGED주석 태그와 함께
🚜파일 구조를 변경할 때 . 🎨과 함께 사용
🔨코드를 리팩토링 할 때
☔️테스트를 추가 할 때
🔬코드 범위를 추가 할 때
💚CI 빌드를 고칠 때
🔒보안을 다룰 때
⬆️종속성을 업그레이드 할 때
⬇️종속성을 다운 그레이드 할 때
이전 버전 / 지점에서 기능을 전달할 때
최신 버전 / 지점에서 기능을 백 포트 할 때
👕linter / strict / deprecation 경고를 제거 할 때
💄UI / style 개선시
♿️접근성을 향상시킬 때
🚧WIP (진행중인 작업)에 커밋, @REVIEW주석 태그와 함께 사용
💎New Release
🔖버전 태그
🎉Initial Commit
🔈로깅을 추가 할 때
🔇로깅을 줄일 때
새로운 기능을 소개 할 때
⚡️도입 할 때 이전 버전과 호환되지 않는 특징, @CHANGED주석 태그 사용
💡새로운 아이디어, @IDEA주석 태그
🚀배포 / 개발 작업 과 관련된 모든 것
🐘PostgreSQL 데이터베이스 별 (마이그레이션, 스크립트, 확장 등)
🐬MySQL 데이터베이스 특정 (마이그레이션, 스크립트, 확장 등)
🍃MongoDB 데이터베이스 특정 (마이그레이션, 스크립트, 확장 등)
🏦일반 데이터베이스 별 (마이그레이션, 스크립트, 확장명 등)
🐳도커 구성
🤝파일을 병합 할 때

커밋 템플릿 파일(commit template file) 만들기

커밋 메세지 템플릿을 적용할 git 프로젝트에 진입한 다음, .gitmessage.txt 파일을 생성합니다.

이제 그 파일 내용을 아래와 같이 수정합니다.

# <타입> : <제목> 형식으로 작성하며 제목은 최대 50글자 정도로만 입력
# 제목을 아랫줄에 작성, 제목 끝에 마침표 금지, 무엇을 했는지 명확하게 작성

################
# 본문(추가 설명)을 아랫줄에 작성

################
# 꼬릿말(footer)을 아랫줄에 작성 (관련된 이슈 번호 등 추가)

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

# 으로 된 줄은 모두 주석처리된 곳이며, 비어 있는 첫 번째~세 번째 줄에 각각 작성하면 그것이 커밋 제목, 본문, 꼬릿말이 되는 것입니다. 위와 같이 파일 내용을 수정하고 저장합니다.

다음 아래 명령어를 입력합니다. <.gitmessage.txt 경로> 부분에는 위에서 생성한 파일의 경로를 입력하면 됩니다. (< > 제외)

git config --global commit.template <.gitmessage.txt 경로>

이제부터 git commit 입력 시, 위에서 지정한 템플릿 파일이 자동으로 뜨게 됩니다. 거기에서 커밋 제목, 본문, 꼬릿말 등을 추가하면 됩니다.

이 때 터미널 환경에서 git commit을 입력하면 vi 에디터 환경으로 나올 것입니다. 작성할 때에는 키보드 i키를 누르면 되며, 작성 완료하고 저장하려면 esc 키를 누른 다음 :wq! 를 입력하고 엔터를 누르시면 됩니다.

적용

엄청 깔끔해 졌습니다! 앞으로 컨벤션 지키면서 커밋해보겠습니다.

참고 및 출처

협업을 위한 git 커밋컨벤션 만들기

git commit 템플릿 만들기

profile
멋진 프론트엔드 개발자를 위하여!

0개의 댓글