개발/형상관리

commit 메시지 규칙

2023. 4. 11. 12:09
목차
  1. 1. 메세지 구조
  2. 1) 기본 형식
  3. 2) 타입 (type) 종류
  4. 3) 제목 (Subject)
  5. 4)본문(body)
  6. 5) 꼬리말 (footer)
  7. 2. 커밋 작성 예

1. 메세지 구조

1) 기본 형식

[type] (optional scope): [subject] (optional #issueNumber)

[optional body]

[optional footer]

2) 타입 (type) 종류

구분자 작업 유형 예 비고
feat 새 기능 구현 feat: 예치금 대량 충전 검색 기능 추가 (PP-2345)  
fix 버그 수정 fix: 상점 목록의 에러처리 예외케이스 대응 (PP-2356)  
release 버전 변경 release: v10.0.0 → v10.1.1  
docs 문서(또는 주석) 관련 작업 docs: 데코레이터 옵션에 대한 문서 추가 (PP-2345)  
refactor 리팩터링 refactor: createStore의 함수를 작은 함수로 분리 (PP-2345)  
test 테스트 관련 작업 test: 상점 생성 테스트 추가 (PP-2345)  
chore 패키지 매니저 수정,기타 작업 chore: 프로덕션 빌드시 소스맵 생성하도록 변경 (PP-2334)
build 빌드 관련 수정    
ci CI 관련 설정 수정    
style 코드 스타일, 포맷팅에 대한 수정    
  • feat: 새로운 기능을 추가하거나 기존의 기능을 요구 사항 변경으로 변경한 경우
    기능 추가와 수정을 나누어서 쓰고 싶은 경우 아래 처럼 2개로 나누어서 타입을 지정할 수 있다.
    • new: 새로운 기능을 추가 한 경우
    • improve: 기존 기능을 수정 한 경우, 요구 사항이 변경되어 수정된 경우에도 improve 타입으로 한다.
  • fix: 기능상 버그 픽스를 했을 경우
  • release: 릴리스를 하기 위해 패키지 버전을 올리거나, 릴리스 버전 커밋을 찍기 위한 경우
  • docs: 문서(주석)의 추가/수정의 경우, 직접적인 코드의 변화 없이 순수하게 문서(주석)만 추가/수정했을 경우
  • refactor: 기능의 변화가 아닌 코드를 리팩토링했을 경우, 코드 리뷰 등으로 로직(기능)의 변화 없이 단순 함수 내부에서만 사용하는 이름을 변경하였거나, 코드 pretty 등을 적용했을 경우
  • test: 테스트 코드를 별도로 추가하거나, 변경했을 경우, 만약 기능을 추가하면서 테스트 코드를 동시에 작성했으면 feat 타입으로 사용
  • chore: 기능/테스트 코드, 문서, 스타일, 리팩토링을 제외한, 배포, 빌드 등과 같이 프로젝트의 기타 작업들에 대해 추가/수정했을 경우, lint 등의 적용으로 코드 스타일을 수정 했을 때도 chore 사용
  • style: UI를 추가/변경 하거나 스타일 관련 작업을 했을 경우

3) 제목 (Subject)

제목은 항시 입력해야 하며 반드시 타입과 함께 작성되어야 합니다.

 

개인/팀의 스타일에 따라 type과 Subject의 위치 또는 표현 방식(:대신 []로 감싼 다던가)은 마음껏 변경해도 됩니다. 다만, 반드시 제목은 작성해야 하며, 제목에는 type과 Subject가 함께 작성되어야 합니다.

 

1) [Subject] scope

  • 선택사항이며, 변경된 부분을 직접적으로 표기한다.
  • 함수가 변경되었으면 함수명, 메소드가 추가되었으면 클래스 명을 입력한다.

2) [Subject] subject

  • 타입은 영문 소문자로 작성합니다.
  • 첫 글자는 대문자로 입력한다.
  • 마지막에는 .(period)을 찍지 않으며 영문 기준 최대 50자를 넘지 않는다.
  • 제목은 명령문의 형태로 작성한다. (동사원형 사용)
  • 제목은 해당 커밋에 대한 주요 내용을 간략하게 기록한다.

4)본문(body)

  • 커밋에서 수정된 상세내역을 작성한다. 여기선 평서문으로 작성하면 된다.
    • 어떻게 변경했는지보다, 무엇을 변경했고, 왜 변경했는지를 설명한다.
  • 본문은 생략 가능하며, 제목(Subject) 라인과 반드시 한 줄을 띄운다.
  • 되도록 한 줄에는 72자 이하로 작성하고 길어질 경우 개행해서 다음 줄에 입력한다.
  • 수정 내역을 블릿 기호(*) 이용해서 하나씩 입력하는 방법도 좋다.
  • 문장의 끝에 구두점(.)을 끝에 찍지 않습니다.
  • 문장은 명사로 끝나야 합니다.

5) 꼬리말 (footer)

  • 꼬리말은 생략 가능하며, 반드시 제목(Subject) 또는 본문(Body) 라인과는 반드시 한 줄을 띄운다.
  • 꼬리말을 해당 커밋과 연관된 이슈 트래킹 번호를 입력한다.
  • 제목에는 커밋이 온전히 한 개의 이슈에 해당하는 경우에만 추가해서 사용하고 그 외의 경우 대부분 꼬리말에 이슈 번호를 라벨과 함께 추가한다.
Resolves: #1234
See also: #1235, #1236

 

라벨의 종류

  • Resolves: 문의나, 요청에 의한 이슈에 해당하는 경우 이슈 번호
  • Closes: 일반적인 개발과 관련된 이슈에 해당하는 경우 이슈 번호
  • Fixes: 버그 픽스, 핫 픽스 관련 이슈에 해당하는 경우 이슈 번호
  • See also: 커밋의 이슈와 연관되어 있는 이슈들이 존재 하는 경우, 또는 관련된 이슈들이 있는 경우 이슈 번호

2. 커밋 작성 예

feat: 프렌즈 지원하기 버튼에 GA 이벤트 태그 추가 (#2345)

구글 광고를 지원하기 위해서 GA이벤트 태그가 아닌 구글 애드센스 추적 코드를 삽입합니다.
또한, 프렌즈 지원하기 버튼에 정의된 이벤트 태그를 보내는 기능을 추가합니다.

출처 : 더 나은 Git 커밋 메시지 작성 패턴


참고 :

더 나은 Git 커밋 메시지 작성 패턴

Git Commit Message Style Guide - 개인/팀을 위한 커밋 메시지 스타일 가이드

[Git] Commit message 규칙

커밋 컨벤션

좋은 git commit 메시지를 위한 영어 사전

'개발 > 형상관리' 카테고리의 다른 글

[Git] 소스트리 fatal : Could not read from remote repository.  (0) 2024.06.06
[Git] git  (0) 2023.07.10
[Git] Git-flow  (0) 2023.02.19
  1. 1. 메세지 구조
  2. 1) 기본 형식
  3. 2) 타입 (type) 종류
  4. 3) 제목 (Subject)
  5. 4)본문(body)
  6. 5) 꼬리말 (footer)
  7. 2. 커밋 작성 예
'개발/형상관리' 카테고리의 다른 글
  • [Git] 소스트리 fatal : Could not read from remote repository.
  • [Git] git
  • [Git] Git-flow
Developer.do.de.gee
Developer.do.de.gee
기록하는 개발자 Do_de_gee
Developer.do.de.gee
Do_de_gee.log
Developer.do.de.gee
전체
오늘
어제
  • 분류 전체보기
    • 개발
      • front-end
      • back-end
      • Spring
      • Java
      • DB
      • AWS
      • 개발지식
      • 개발 트랜드
      • 개발 환경
      • 형상관리
      • 솔루션
      • CS
      • 모니터링
      • 정보처리기사
    • 알고리즘 , 문제해결
      • 이론
      • 문제
      • 자료구조
    • UXUI
      • 트랜드
      • UIUX 용어
    • ETC
      • About Me.
      • 개발 일기장
      • 도서 리뷰
      • 취업준비

블로그 메뉴

  • 홈
  • 태그

최근 글

태그

  • TypeScript
  • 알고리즘
  • 온프레미스
  • ci/cd
  • JSON
  • 권한처리
  • Spring Boot
  • restapi
  • mybatis
  • JQuery
  • implementation
  • XOR(^)
  • git-flow
  • STRUTS2
  • 코드리뷰
  • Javascript
  • CS
  • js
  • Programmers
  • react
  • docker
  • 암호화
  • efk
  • db
  • spring
  • 자료구조
  • 빌드 관리
  • Til
  • gradle
  • 스프링시큐리티
hELLO · Designed By 정상우.
Developer.do.de.gee
commit 메시지 규칙
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.