Git에서 commit하는 경우, Commit Message에 의해 작성하도록 되어 있습니다.
기본적으로 제공하는 템플릿 형태로 Commit Message 를 쓰도록 설정되나, 이 템블릿을 본인이 원하는 형태로 바꿀 수 있습니다.
기본적인 Commit Message 규칙이 존재합니다.
type : title
body
Resolves
See also
type
은 양식을 지정합니다.Resolves
에는 해결한 이슈를, See also
에는 참고 이슈를 작성하고 생략이 가능합니다.커밋 유형 지정
FEAT
: 새로운 기능 의 추가FIX
: 버그 수정DOCS
: 문서 수정STYLE
: 스타일 관련 기능(코드 포맷팅, 세미콜론 누락, 코드 자체의 변경이 없는 경우)REFACTOR
: 코드 리팩토링TEST
: 테스트 코드, 리팩토링 테스트 코드 추가CHORE
: 빌드 업무 수정, 패키지 매니저 수정Commit message에서도 github의 issue를 닫는 기능을 제공합니다.
키워드 #이슈번호
각 키워드마다 기능의 차이는 없고, 문법이나 맥락에 맞게 사용하면 됩니다.
다만 close
계열은 일반 개발 이슈, fix
계열은 버그 픽스나 핫 픽스 이슈, resolve
계열은 문의나 요청 사항에 대응한 이슈에 사용하면 적당하다는 관례는 있습니다.
제목에 이슈 한 개 닫기를 적용
# 제목에 이슈 한 개 닫기 적용한 사례
<feature> : <Close #10 - implement login function>
* 로그인 구현 기능 이슈 해결
내용으로 이슈 여러 개 닫기를 적용
# 내용으로 이슈 여러 개 닫기를 적용한 사례
<fix> : <fix login error issue>
* 로그인 기능을 구현했으나, 관련 fix 이슈가 많이 발생했고, 이를 해결함
# Resolve 작성 부분
* Fix #21 Update Login Algorithm
* Fix #24 Update Login Form
Commit Template은 Commit 작성법을 규치으로 정하고, 그 규칙을 Template으로 만들어, 가이드 해서 Commit Log를 작성할 수 있도록 해주는 기능을 합니다.
git-commit-template은 Commit Message 규칙에 맞게 작성하고 사용자가 보기 쉽도록 작성해야 합니다.
git-commit-template.txt 작성 예시
# <타입> : <제목> 형식으로 작성하며 제목은 최대 50글자 정도로만 입력
# 제목을 아랫줄에 작성, 제목 끝에 마침표 금지, 무엇을 했는지 명확하게 작성
################
# 본문(추가 설명)을 아랫줄에 작성
################
# 꼬릿말(footer)을 아랫줄에 작성 (관련된 이슈 번호 등 추가)
################
# feature : 새로운 기능 추가
# fix : 버그 수정
# docs : 문서 수정
# test : 테스트 코드 추가
# refactor : 코드 리팩토링
# style : 코드 의미에 영향을 주지 않는 변경사항
# chore : 빌드 부분 혹은 패키지 매니저 수정사항
################
################
# Remember me ~
# 제목줄을 대문자로 작성
# 제목줄은 명령어로 작성
# 제목줄은 마침표로 끝내지 않는다.
# 본문과 제목에는 빈줄을 넣어서 구분한다.
# 본문에는 "어떻게" 보다는 "왜"와 "무엇을" 설명한다.
# 본문에 목록을 나타낼때는 "-"로 시작한다.
################
작성한 git-commit-template.txt를 commit 작성 시, template 형태로 사용하도록 config 파일에 설정해주어야 합니다.
git config commit.template '프로젝트 경로/git-commit-template.txt'
--global
옵션을 추가한다.git config --list
로 확인해볼 수 있다.config 파일에 등록하는 예시
git config commit.template ./git-commit-template.txt
결과
졸업과정으로 진행하는 프로젝트의 Template을 공유하겠습니다.
# <타입> : <제목> 형식으로 작성하세요
################
# 타입 설정하기
## feature : 새로운 기능 추가
## fix : 버그 수정
## docs : 문서 수정
## test : 테스트 코드 추가
## refactor : 코드 리팩토링
## style : 코드 의미에 영향을 주지 않는 변경사항
## chore : 빌드 부분 혹은 패키지 매니저 수정사항
# 제목 설정하기
## 제목 작성 후 공백 한줄을 포함해야, 제목과 본문이 구별됨
## 제목 첫 글자는 대문자로 작성, 마침표를 사용하지 않음
## 제목은 명령문으로 사용, 과거형을 사용하지 않음
## 제목은 50글자로 제한
################
##### 제목을 아랫줄에 작성하세요 #####
################
# 본문 설정
## 본문 작성 후 공백 한줄을 포함해야, 본문과 Resolves가 구별됨
## 본문의 각 행은 72글자로 제한
## 본문은 "왜"와 "무엇을"위주로 작성
## 본문은 행으로 구분되어야 함
## 본문의 내용은 *으로 시작함
################
##### 본문(추가 설명)을 아랫줄에 작성하세요 #####
################
# Resolves 설정
## Resolves 작성 후 공백 한줄을 포함해야, Resolves와 See also가 구별됨
## Resolves의 내용도 *으로 시작함
## 해결한 이슈는 닫을 수 있도록 함.
# 이슈 종료 방법
## '키워드 #이슈번호'
# issue 종료 키워드 (github)
## * close - 일반 개발 이슈
## * closes
## * closed
## * fix - 버그 fix 이슈
## * fixed
## * resolve - 문의 요청사항 이슈
## * resolves
## * resolved
################
##### Resolves를 작성하세요 (생략 가능) #####
################
# See also 설정
## 연관된 이슈의 경우 이슈 번호와 연관 이슈 내용을 입력
## See also의 내용도 *으로 시작함
################
##### See also를 작성하세요 (생략 가능) #####
################
# Remember me ~ Commit Message 규칙
## 1. 제목과 본문을 빈 행으로 구분한다.
## 2. 제목을 50글자 내로 제한
## 3. 제목 첫 글자는 대문자로 작성
## 4. 제목 끝에 마침표 넣지 않기
## 5. 제목은 명령문으로 사용하되, 과거형을 사용하지 않는다.
## 6. 본문의 각 행은 72글자 내로 제한
## 7. 어떻게 보다는 무엇과 왜를 설명
################
git log
git log --oneline