커밋 메세지 더 잘 작성하기 (A.k.a. Gitmessage)

최근 몇개월간 진행한 프로젝트 스터디를 마무리했다. 뿌듯함보단 아쉬움이 남는 스터디였다. 프로젝트를 시작하고 나서 부족한 실력때문에 몇번씩 좌절감을 맛보았던게 아직도 기억이 난다. 그래도 포기하지않고, 어찌어찌 마무리한건 다행이다.

프로젝트를 진행하며 버전관리로 git을 이용했는데, 처음 시작할때 메세지를 잘 작성하자고 약속했지만, 막상 이를 지키지 못했다. 그러다 프로젝트를 끝난 시점에 커밋 메세지 템플릿을 만들수 있다는 것을 알았다. 템플릿을 이용하면 커밋 메세지를 작성할 때마다 템플릿에서 작성할 수 있기 때문에 서로의 약속을 지키기 더 원활할 것으로 기대한다. 나중에 다시 프로젝트를 하게 될 때 유용할 것 같아서 적용해보았다.

먼저 운영체제의 루트 디렉토리에서 gitmessage 를 만들어야 한다. 이 파일이 곧 커밋 템플릿이 되며, 앞으로 커밋을 작성할 때마다 콘솔에서 출력될 것이다.

gitmessage.txt 생성

1
$ vim ~/.gitmessage.txt

vim 에디터가 열리면 여기서 템플릿을 만들면 된다. 필자는 이렇게 작성했다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 제목은 최대 50글자까지 아래에 작성: ex) <feat>: Add OAuth2

# 본문은 아래에 작성

# 꼬릿말은 아래에 작성: ex) Github issue #23


# --- COMMIT END ---
# <타입> 리스트
# feat : 기능 (새로운 기능)
# fix : 버그 (버그 수정)
# refactor: 리팩토링
# style : 스타일 (코드 형식, 세미콜론 추가: 비즈니스 로직에 변경 없음)
# docs : 문서 (문서 추가, 수정, 삭제)
# test : 테스트 (테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없음)
# chore : 기타 변경사항 (빌드 스크립트 수정 등)
# ------------------
# 제목 첫 글자를 대문자로
# 제목은 명령문으로
# 제목 끝에 마침표(.) 금지
# 제목과 본문을 한 줄 띄워 분리하기
# 본문은 "어떻게" 보다 "무엇을", "왜"를 설명한다.
# 본문에 여러줄의 메시지를 작성할 땐 "-"로 구분
# ------------------

다시 한 번 언급하지만 이 템플릿이 열리며 커밋 메세지를 작성하기 때문에 커밋 메세지 작성에 대한 규칙을 여기에 명시하면 된다. 내가 아닌 다른 사람들이 보고 쉽게 작성할 수 있도록 최대한 명료하게 작성하는게 중요하다.

vim을 git editor로 지정

1
$ git config --global core.editor vim

다른 에디터(emacs)를 사용하는 사람이라면, 위 커맨드 명령어중 vim을 다른 명령어로 교체하면 된다.

위에서 작성한 gitmessage를 템플릿으로 지정

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

이제 커밋(git commit)을 명령하면, gitmessage 템플릿에서 작성할 수 있게 된다.