Skip to content

1주차(목) ‐ Git commit message template 적용 📝

YoonJu Ham edited this page Jul 15, 2024 · 1 revision

개요

commit 컨벤션을 편리하게 적용할 수 있도록 커밋 템플릿을 적용

템플릿이 필요한 이유

커밋 메시지를 작성할 때 일관성과 품질을 유지하기 위해 미리 정의된 형식을 제공한다.

템플릿 작성

깃 컨벤션을 기준으로 .gitmessage.txt를 작성

# 커밋 메시지 템플릿
# - 형식: <jira issue key>/<type>: <short summary>
# ▼ <header> 작성

# ▼ <빈 줄>

# ▼ <body> 작성

# ▼ <빈 줄>

# ▼ <footer> 작성

# 작성 형식 설명
#   - 일반 커밋
#     <header>
#		 <jira issue key>
#           - jira issue key 알아서 넣으세용
#        <type>
#		    - feat: 새로운 기능 추가
#           - fix: 버그 수정
#           - docs: 문서 수정
#           - style: 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
#           - design: 사용자 UI 변경 (CSS 변경 등)
#	        - refactor: 코드 리팩토링
#           - test: 테스트 코드, 리팩토링 테스트 코드 추가
#           - chore:	빌드 업무 수정, 패키지 매니저 수정, production code와 무관한 부분들 (.gitignore, build.gradle 같은)
#           - comment:	주석 추가 및 변경
#           - rename: 파일, 폴더명 수정
#           - remove: 파일, 폴더 삭제
#       <short summary>
#           - 필수 입력
#           - 변경 사항을 간결하게 설명
#           - 첫글자 소문자, 현재 시제, 명령문으로 마지막에 .(마침표) 없이 작성
#
#     <body>
#       - 최소 20자 필수 입력(<type>docs 제외)
#       - 현재 시제, 명령문으로 작성
#       - 변경 사항의 동기(왜)를 설명
#       - 변경 효과를 설명하기 위해 이전 동작과 현재 동작의 비교를 포함할 수 있음
#
#     <footer>
#       - Breaking Changes, deprecations 또는 이 커밋이 close하거나 연관된 깃헙 이슈, 지라 티켓, 풀리퀘스트 포함
#       - 예시
#         - 1. Breaking Changes
#           BREAKING CHANGE: <breaking change 요약>
#           <빈 줄>
#           <breaking change 설명 + migration 지시>
#           <빈 줄>
#           <빈 줄>
#           Fixes #<issue number>
#         - 2. deprecations
#           DEPRECATED: <deprecated 된 것>
#           <빈 줄>
#           <deprecation 설명 + 추천 update 경로>
#           <빈 줄>
#           <빈 줄>
#           Closes #<pr 번호>
#
#   - Revert 커밋
#     <header>
#       revert: <revert 대상 커밋의 헤더>
#     <body>
#       - This reverts commit <revert 대상 커밋의 SHA>
#       - revert 이유에 대한 명확한 설명

템플릿 적용

  1. 프로젝트의 루트폴더에 .gitmessage.txt를 저장
  2. git config --local commit.template .gitmessage.txt 명령어로 적용
  3. 터미널에 git commit명령어 입력시 템플릿이 나오게 됩니다.
  4. intellij IDEA에도 자동으로 적용되어 사용할 수 있습니다.

템플릿 작동 원리

커밋 메시지 템플릿은 Git의 commit.template 설정을 통해 지정된 파일의 내용을 커밋 메시지 작성 시 기본으로 불러온다. (#) 으로 시작하는 라인은 주석으로 간주된다. 이러한 주석은 실제 커밋 메시지에 포함되지 않는다. 이느 Git의 commit.cleanup 설정이 기본적으로 strip 으로 설정되어 있어 주석을 자동으로 제거해준다.

commit.cleanup

커밋 메시지를 커밋하기 전에 어떻게 정리할지를 결정하는 옵션

모드

  1. strip:
    • 선행 및 후행 빈 줄, 후행 공백, 그리고 주석을 제거하고 연속된 빈 줄을 하나로 합친다.
  2. whitespace:
    • strip 과 동일하지만 주석은 제거하지 않는다.
  3. verbatim:
    • 메시지를 전혀 변경하지 않는다.
  4. default:
    • 메시지를 편집할 때는 strip 과 동일하게 동작하고, 그렇지 않을 때는 whitespace 와 동일하게 동작한다.

설정

git config --[ local | global ] commit.cleanup strip

Clone this wiki locally