Git commit 메시지 컨벤션 📩

김예지·2022년 2월 21일
6

공부 흔적 📚

목록 보기
1/5
post-thumbnail

git commit 메시지는 중요하다!


commit 메시지를 잘 써야하는 이유?

기능 구현하기도 힘든데, 커밋메시지... 그게 중요한가요?🤔

결론적으로, 커밋 메시지를 잘 작성하는 것은 매우 중요한 일이다. 나도 예전에는 커밋메시지의 중요함을 전혀 알지 못했다. 우테코 프리코스를 진행하며 커밋 메시지를 처음 제대로 써봤고, 다양한 부분에서 커밋메시지가 중요함을 깨닫는다.
정리하자면, 커밋메시지를 잘 써야하는 이유는 다음과 같다.

1. 더 좋은 커밋 로그 가독성
커밋 메시지를 메뉴얼에 따라 작성하면, 커밋 로그의 가독성이 높아진다.
(무엇보다도, 커밋 로그가 깔끔하면 기분이 좋다. 😆)

2. 더 나은 협업과 리뷰 프로세스
커밋메시지는 협업에서 매우 중요하다! 협업을 하는데 내가 커밋 메시지를 중구난방으로 작성한다면, 팀원이 내가 이 코드를 왜 작성했는지에 대해 파악할 수 없다. 따라서, 협업을 할때에 특히 더 신경써서 커밋 메시지를 작성하자.

3. 더 쉬운 코드 유지보수
커밋 메시지가 잘 작성되어있으면, 내가 어떤 코드를 어디에서 작성했는지 쉽게 찾을 수 있기 때문에 유지보수가 쉽다.

좋은 git 커밋 메시지를 작성하기 위한 7가지 약속

* 영어 작성 기준, 한글에서는 더 유연하게 적용 가능하다!

  1. 제목과 본문을 한 줄 띄워 분리하기
  2. 제목은 영문 기준 50자 이내로(가독성)
    영어 2글자 = 한글 1글자이기 때문에, 한글 기준으로는 약 30자정도로 작성하면 된다.
  3. 제목 첫글자를 대문자로 (영어만 해당)
  4. 제목 끝에 . 금지
  5. 제목은 명령조로 → 과거형으로 x, 현재형으로o (ex. 수정했음, 수정함x → 수정o)
  6. 본문은 영문 기준 72자마다 줄 바꾸기
  7. 본문은 어떻게보다 무엇을에 맞춰 작성하기

git commit 메시지 컨벤션


git commit 메시지는 '제목(필수), 내용(선택), 마무리(선택)' 으로 작성할 수 있다.
각각을 어떻게 작성하면 좋을지 알아보자.
가장 일반적으로 많이 사용되는 udacity의 컨벤션을 따른다. (TMI: udacity는 대규모 온라인 교육 기관이고, 학생들이 커밋 메시지에 혼란스러워해서 요런 컨벤션을 만들어줬다고 한다. 쏘 서윗...)

제목(subject, 필수)

WHAT 무엇을 했는지

형태

type: subject(제목)

  • :과 설명사이에 한개의 공백 유지하고 작성할 것
  • type은 대문자나, 소문자 하나로 통일하기 (나는 소문자 통일!)
  • 설명 일관되게 통일하기 (~기능 구현, ~작성, ~출력, ~삭제, ~생성, ~수정...)
  • 명령형, 현재형으로 작성하기

type

  • feat: 새로운 기능 (기능 구현)
  • fix: 버그 수정
  • docs: documentation 변경
  • style: 코드 의미에 영향을 주지 않는, 코드가 아닌 스타일에 관련된 변경사항(포맷, 공백, 빼먹은 세미콜론, 함수 이름 변경, 줄간격, 파일 이름, 의미없는 주석 삭제)
  • refactor: 리팩토링에 대한 커밋(버그를 수정하지 않고 기능을 추가하지 않는 코드 변경)
  • test: 누락된 테스트 추가 또는 기존 테스트 수정
  • chore: 패키지 매니저 설정할 경우, 코드 수정 없이 설정을 변경 (eslint, prettier... 패키지 설정)

내용(body, description, 선택)

WHY 왜 이커밋을 작성하게 되었는지, 왜 그렇게 했는지

  • 일반적으로 제목까지만 기재하면 충분하기 때문에 선택사항으로 기재하면 되며, 약간의 설명이나 전체 문맥을 설명해야 할 때만 사용한다. (commit메시지는 간단히 요약한 내용을 작성하고, 부족한 부분이 있으면 description에 추가하기)
  • 작성할 때는 커밋에 대해 어떻게(How)가 아닌 무엇(What) 그리고 이유(Why)에 설명을 합니다.
  • 현재형으로 작성
  • commit을 할 때 추가로 자세하게 쓸 내용이 있는데 너무 요약해서 작성했다면, description에 추가 설명을 작성하기 (필수 x)
  • 본문을 작성하고 싶을 때는, 제목과 본문을 한 줄 띄워 분리하기

마무리(Footer, 선택)

이슈트래킹을 위해 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

profile
내가 짱이다 😎 매일 조금씩 성장하기🌱

0개의 댓글