[git] 커밋 메시지 템플릿

이춘구·2022년 11월 16일
3

협업 등의 상황에서 일관된 커밋 메시지 컨벤션을 위해 템플릿을 만든다.

작업 환경
편집기: vscode
터미널: git bash

1. .gitmessage.txt 파일 생성

터미널을 이용해 깃 메시지 템플릿으로 사용할 파일을 생성한다.

1) 모든 프로젝트에 global로 적용하는 경우

~/(사용자의 HOME 디렉토리)에 생성한다.

touch ~/.gitmessage.txt

2) 현재 프로젝트에만 적용하는 경우

프로젝트의 루트 경로에 생성한다.

touch .gitmessage.txt

2. 템플릿 작성

생성한 .gitmessate.txt 파일에 템플릿을 작성한다.

Angular의 가이드를 참고했다.

# 커밋 메시지 템플릿
# ▼ <header> 작성

# ▼ <빈 줄>

# ▼ <body> 작성

# ▼ <빈 줄>

# ▼ <footer> 작성


# 작성 형식 설명
#   - 일반 커밋
#     <header>
#       - 필수 입력
#       - 형식: <type>(<scope>): <short summary>
#           <type>
#             - 필수 입력
#             - build: build system 또는 external dependencies에 영향을 미치는 변경사항 (예시 scope: gulp, broccoli, npm)
#             - ci: CI configuration 파일 또는 scripts의 변경사항 (예시: CircleCi, SauceLabs)
#             - config: 설정 관련 파일 작성 또는 변경
#             - docs: 문서 변경사항
#             - feat: 새로운 기능
#             - fix: 버그 수정
#             - perf: 성능을 향상시키는 변경사항
#             - refactor: 기능 추가나 버그 수정이 아닌 변경 사항
#             - remove: 코드나 파일 제거
#             - style: 스타일 작성 또는 수정
#             - test: 누락된 테스트 추가 또는 기존 테스트 수정
#           <scope>
#             - 선택 입력
#             - 변경 사항에 영향 받는 npm 패키지 이름
#             - location, browser, compile, rootScope ...
#           <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 이유에 대한 명확한 설명

3. git config로 template 설정

1) global로 적용하는 경우

git config --global commit.template ~/.gitmessage.txt

2) 현재 프로젝트에만 적용하는 경우

git config commit.template .gitmessage.txt

4. 커밋 메시지 작성

1) 터미널 사용하는 경우

변경된 파일이 add 된 상태에서 터미널에 git commit 명령어를 입력하면 vi 편집기가 열린다. (git bash 기준)

키보드 i를 눌러 insert mode를 활성화한 다음, 정해진 컨벤션대로 커밋 메시지를 편집한 뒤,

키보드 esc를 눌러 편집 모드에서 탈출하고, :wq를 입력하면 커밋이 완료된다.

2) vscode의 GUI 사용하는 경우

변경된 파일이 add 된 상태에서 Commit 버튼을 클릭한다.

COMMIT_EDITMSG 탭이 열리면서 편집할 수 있게 된다.
편집을 마친 뒤 우측 상단의 체크 버튼을 클릭하면 커밋이 완료된다.

5. template 설정 해제

1) global로 적용한 경우

git config --unset --global commit.template

2) 현재 프로젝트에만 적용한 경우

git config --unset commit.template

profile
프런트엔드 개발자

2개의 댓글

comment-user-thumbnail
2023년 10월 3일

터미널에서 사용하시는 폰트가 너무 깔끔하고 좋은것 같아요! 혹시 가능하다면 폰트 정보를 알수있을까요....?

1개의 답글