깃 커밋메시지 컨벤션 (Git Commit Message Convention)
요즘같은 시장에서 어떻게 잘 취업할 것인가...에 대해서 생각도 해보고 조언도 구하다보면 귀결되는 결론은
'어떻게 내가 같이 일하고 싶은 사람이 될 것인가' 인 것 같다.
기업 관점에서 볼 때
놓치기 싫을만큼 엄청난 실력이거나, 우리 회사에 관심이 있던 사람이라거나, 블로그를 보니 개발에 진심 이라던가, 커뮤니케이션을 정말 잘하거나 등등... 어필하면 좋은 내용은 많다.
나 스스로를 시험에 들게 하기위해 우테코 마지막 주 과제 레포를 보다가, 커밋 컨벤션에 관한 요구사항을 보았다.
커밋 컨벤션은 협업에 대해 진지하게 고려해온 사람이라는 것을 보여줄 수 있는 증거 중 하나가 될 수 있을 것 같다는 생각이 들어 정리해본다.
커밋 컨벤션을 어디서 참고할까?
프리코스에서 커밋 메시지 컨벤션 가이드 링크를 제공한다.
커밋 메시지의 포맷은 다음과 같이 안내된다.
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
이 중 당장은 맨 위만 활용하면 될 것 같다.
<type>의 경우 들어갈 수 있는 키워드는 다음과 같다.
- feat (기능 구현 시)
- fix (버그 픽스 시)
- docs (documentation..README.md등의 문서를 수정한 경우)
- style (formatting, missing semi colons, …)
- refactor
- test (when adding missing tests 테스트코드 작성 시)
- chore (maintain 찾아보니 빌드 혹은 패키지 매니저 등 수정 시에 사용)
<scope> 는 어디가 변경되었는지를 표기하고, 생략이 가능하다.
<subject> - 커밋의 제목(요약).
changed, changes같은 표현 말고 change로 쓰라는 걸 보니 기본형으로 쓰라고 한다.
대문자 사용하지 말고 온점(.) 찍지 말라한다. 이런건 왜 있나 생각해보니 간결함과 통일성 때문이겠지?
일반적으로 사용하는 커밋의 경우 git commit -m "내용입력" 으로 메시지 내용을 생략하고 헤더만 작성하기에 이 정도 까지만 지켜줘도 좋을 것 같아서,
<type>(<scope>): <subject>
// 이것만 잘 써도 될 것 같다.
git commit으로 editor를 열어 message body를 작성하는 부분은 필요하게 되면 추후 수정해야겠다.
실제 메시지를 통해 익혀보기
저런 format을 보고서는 사실 감이 잘 안온다.
그래서 우테코 깃허브에 들어가 Popular repositores의 커밋 히스토리를 뒤적여보니
이런식으로 참여자 분들이 refactor, feat, test, fix를 사용하는 모습을 볼 수 있었고 (scope는 다들 생략하셨다) 한글도 자유롭게 사용하시는 모습을 볼 수 있었다.
docs도 이런식으로 활용하시는 것을 볼 수 있었다.
조금 더 찾아보다가
scope가 활용된 레포도 찾아볼 수 있었다.
우테코 모집 과정을 관리하는 레포인것을 보아 apply는 지원 관련하여 변경사항이 있다는 것 같다.
그리고 빨갛게 동그라미 쳐놓은 부분은 커밋 메시지 body가 있다는 것이라 열어보니 저렇게 같이 일하신 분을 footer 느낌으로 넣어두신 것 같다.
마무리
모든 레포의 커밋 형식이 동일하지는 않았다.
위 가이드를 토대로 프로젝트마다 필요에 따라 컨벤션을 충분히 자유롭게 설정할 수 있기 때문이고,
중요한 것은 큰 틀을 유지하며 깔끔하게 보인다는 공통점이 있다는 것이었다.
우선 위에 서술된 type을 지키며 커밋 컨벤션을 지켜나가봐야겠다.