협업 등의 상황에서 일관된 커밋 메시지 컨벤션을 위해 템플릿을 만든다.
작업 환경
편집기: vscode
터미널: git bash
.gitmessage.txt
파일 생성터미널을 이용해 깃 메시지 템플릿으로 사용할 파일을 생성한다.
~/
(사용자의 HOME 디렉토리)에 생성한다.
touch ~/.gitmessage.txt
프로젝트의 루트 경로에 생성한다.
touch .gitmessage.txt
생성한 .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 이유에 대한 명확한 설명
git config --global commit.template ~/.gitmessage.txt
git config commit.template .gitmessage.txt
변경된 파일이 add 된 상태에서 터미널에 git commit
명령어를 입력하면 vi 편집기가 열린다. (git bash 기준)
키보드 i
를 눌러 insert mode를 활성화한 다음, 정해진 컨벤션대로 커밋 메시지를 편집한 뒤,
키보드 esc
를 눌러 편집 모드에서 탈출하고, :wq
를 입력하면 커밋이 완료된다.
변경된 파일이 add 된 상태에서 Commit
버튼을 클릭한다.
COMMIT_EDITMSG
탭이 열리면서 편집할 수 있게 된다.
편집을 마친 뒤 우측 상단의 체크 버튼을 클릭하면 커밋이 완료된다.
git config --unset --global commit.template
git config --unset commit.template
터미널에서 사용하시는 폰트가 너무 깔끔하고 좋은것 같아요! 혹시 가능하다면 폰트 정보를 알수있을까요....?