기능 구현하기도 힘든데, 커밋메시지... 그게 중요한가요?🤔
결론적으로, 커밋 메시지를 잘 작성하는 것은 매우 중요한 일이다. 나도 예전에는 커밋메시지의 중요함을 전혀 알지 못했다. 우테코 프리코스를 진행하며 커밋 메시지를 처음 제대로 써봤고, 다양한 부분에서 커밋메시지가 중요함을 깨닫는다.
정리하자면, 커밋메시지를 잘 써야하는 이유는 다음과 같다.
1. 더 좋은 커밋 로그 가독성
커밋 메시지를 메뉴얼에 따라 작성하면, 커밋 로그의 가독성이 높아진다.
(무엇보다도, 커밋 로그가 깔끔하면 기분이 좋다. 😆)
2. 더 나은 협업과 리뷰 프로세스
커밋메시지는 협업에서 매우 중요하다! 협업을 하는데 내가 커밋 메시지를 중구난방으로 작성한다면, 팀원이 내가 이 코드를 왜 작성했는지에 대해 파악할 수 없다. 따라서, 협업을 할때에 특히 더 신경써서 커밋 메시지를 작성하자.
3. 더 쉬운 코드 유지보수
커밋 메시지가 잘 작성되어있으면, 내가 어떤 코드를 어디에서 작성했는지 쉽게 찾을 수 있기 때문에 유지보수가 쉽다.
* 영어 작성 기준, 한글에서는 더 유연하게 적용 가능하다!
영어 2글자 = 한글 1글자
이기 때문에, 한글 기준으로는 약 30자정도로 작성하면 된다. .
금지명령조
로 → 과거형으로 x, 현재형으로o (ex. 수정했음, 수정함x → 수정o)어떻게
보다 무엇을
, 왜
에 맞춰 작성하기git commit 메시지는 '제목(필수), 내용(선택), 마무리(선택)' 으로 작성할 수 있다.
각각을 어떻게 작성하면 좋을지 알아보자.
가장 일반적으로 많이 사용되는 udacity의 컨벤션을 따른다. (TMI: udacity는 대규모 온라인 교육 기관이고, 학생들이 커밋 메시지에 혼란스러워해서 요런 컨벤션을 만들어줬다고 한다. 쏘 서윗...)
WHAT 무엇을 했는지
type: subject(제목)
feat
: 새로운 기능 (기능 구현)fix
: 버그 수정docs
: documentation 변경style
: 코드 의미에 영향을 주지 않는, 코드가 아닌 스타일에 관련된 변경사항(포맷, 공백, 빼먹은 세미콜론, 함수 이름 변경, 줄간격, 파일 이름, 의미없는 주석 삭제)refactor
: 리팩토링에 대한 커밋(버그를 수정하지 않고 기능을 추가하지 않는 코드 변경)test
: 누락된 테스트 추가 또는 기존 테스트 수정chore
: 패키지 매니저 설정할 경우, 코드 수정 없이 설정을 변경 (eslint, prettier... 패키지 설정)WHY 왜 이커밋을 작성하게 되었는지, 왜 그렇게 했는지
이슈트래킹을 위해 ID 등을 참조할 때 사용(#382, #188...)
참고 자료 📚
🔗 https://meetup.toast.com/posts/106
🔗https://gist.github.com/stephenparish/9941e89d80e2bc58a153
🔗http://karma-runner.github.io/0.10/dev/git-commit-msg.html
🔗https://udacity.github.io/git-styleguide/
🔗https://medium.com/humanscape-tech/효율적인-commit-message-작성을-위한-conventional-commits-ae885898e754
감사합니다!