###########################################################################
# Remember me ~
# subject는 어떤 작업을 했는지 명확하게 드러나야하고, 요약하여 작성합니다.
# subject는 명령조로 작성하며, 문장보다는 구문으로 작성합니다.
# 영문으로 작성할 경우 첫글자는 대문자로 시작합니다.
# 줄 끝에 마침표를 사용하지 않습니다.
# subject와 body 사이에 한 줄 띄어 구분합니다.
# body는 부연 설명이 필요한 경우 작성합니다. 선택사항입니다.
# body에서 어떻게 했는지가 아니라, 무엇을 왜 했는지를 작성합니다.
# body에 목록을 나타낼 때는 "-"로 시작합니다.
# footer는 이슈 번호를 참조시킬 때 주로 사용합니다. 선택사항입니다.
# 커밋 메시지 템플릿 (.gitmessage.txt 파일 열고 참고 하여 작성)
# ▼ <header> 제목 작성
# ▼ <빈 줄>
# ▼ <body> 본문 작성
# ▼ <빈 줄>
# ▼ <footer> 꼬리말 작성
###########################################################################
#12345678901234567890123456789012345678901234567890123456789012345678901234
# 작성 형식 설명
# - 일반 커밋
# <header>
# - 필수 입력, 50자 이내, 무엇을 했는지, 동사 원형으로 시작
# - 형식: <type>(<scope>): <short summary>
# - 예시 : Feat: "추가 get data api 함수"
# <type>
# - ci/cd: CI/CD 실행 태그
# - build: build system 또는 external dependencies에 영향을 미치는 변경사항 (예시 scope: gulp, broccoli, npm)
# - ci: CI configuration 파일 또는 scripts의 변경 사항 (예시: CircleCi, SauceLabs)
# - config: 설정 관련 파일 작성 또는 변경
# - docs: 문서 변경 사항
# - feat: 새로운 기능
# - fix: 버그 수정
# - !breaking change : 커다란 변경의 경우(API param, return, DB table etc)
# - !hotfix : 급하게 치명적인 버그를 고쳐야 하는 경우
# - perf: 성능을 향상 시키는 변경 사항
# - refactor: 기능 추가나 버그 수정이 아닌 변경 사항, 코드 리팩토링
# - comment : 필요한 주석 추가 및 변경
# - chore : 빌드 테스트 업데이트, 패키지 매니저를 설정하는 경우(프로덕션 코드 변경 X)
# - remove: 코드나 파일 제거
# - rename : 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
# - revert : 이전 커밋으로 되돌리는 작업
# - style: 스타일 작성 또는 수정
# - design: CSS 등 사용자 UI 디자인 변경
# - test: 누락된 테스트 추가 또는 기존 테스트 수정
# <scope>
# - 선택 입력
# - 변경 사항에 영향 받는 패키지 이름
# - location, browser, compile, rootScope ...
# <short summary>
# - 필수 입력
# - 변경 사항을 간결하게 설명
# - 첫글자 소문자, 현재 시제, 명령문으로 마지막에 .(마침표) 없이 작성
#
# <body>
# - 최소 20자 필수 입력(<type>docs 제외), 최대 75자 이내
# - 현재 시제, 명령문으로 작성
# - 변경 사항의 동기(왜)를 설명 => 무엇을 변경했는지, 왜 변경했는지를 설명
# - 변경 효과를 설명하기 위해 이전 동작과 현재 동작의 비교를 포함할 수 있음
# - ex)
# 모바일 사파리에서 Carousel 모달을 띄웠을 때,
# 모달 밖의 상하 스크롤이 움직이는 이슈 수정.
#
# <footer>
# - Breaking Changes, deprecations 또는 이 커밋이 close하거나 연관된 깃헙 이슈, 지라 티켓, 풀리퀘스트 포함
# - 꼬리말 작성은 optional, "유형: #이슈 번호" 형식, 여러 개의 이슈 번호를 적을 때는 쉼표로 구분
# - 이슈 트래커 유형은 다음 중 하나를 사용합니다.
# - Fixes: 이슈 수정중 (아직 해결되지 않은 경우)
# - Resolves: 이슈를 해결 했을 때 사용(해당 이슈 닫음)
# - Ref: 참고할 이슈가 있을 때 사용
# - Related to: 해당 커밋에 관련된 이슈번호 (아직 해결되지 않은 경우)
# - ex) Fixes: #45 Related to: #34, #23
# - 예시
# - 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 이유에 대한 명확한 설명
###########################################################################
# Info
# feature : 새로운 기능을 추가할 경우
# fix : 버그를 고친 경우
# design : CSS 등 사용자 UI 디자인 변경
# !breaking change : 커다란 API 변경의 경우(ex API의 arguments, return 값의 변경,
# DB 테이블 변경, 급하게 치명적인 버그를 고쳐야 하는 경우)
# !hotfix : 급하게 치명적인 버그를 고쳐야하는 경우
# style : 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우
# refactor : 프로덕션 코드 리팩토링
# comment : 필요한 주석 추가 및 변경
# docs : 문서를 수정한 경우
# test : 테스트 추가, 테스트 리팩토링(프로덕션 코드 변경 X)
# chore : 빌드 태스트 업데이트, 패키지 매니저를 설정하는 경우(프로덕션 코드 변경 X)
# rename : 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
# remove : 파일을 삭제하는 작업만 수행한 경우
# etc : 위 내용에 포함되지 않는 특이사항의 경우
###########################################################################
$ git config --global commit.template ~/.gitmessage.txt![](https://velog.velcdn.com/images/sbkyo88/post/540b171f-cfed-4b2e-bb48-2f09d8b09b52/image.png)