커밋 네이밍

유원근·2020년 12월 7일
6

커밋 네이밍

저도 오랫만에 커밋하다보니 실수가 자꾸 생기는것 같아서 정리할겸
공유해보아요!!

5ba3db6 Fix failing CompositePropertySourceTests
84564a0 Rework @PropertySource early parsing logic
e142fd1 Add tests for ImportSelector meta-data
887815f Update docbook dependency and generate epub
ac8326d Polish mockito usage

위 커밋명들을 보면 몇가지 규칙을들 찾을 수 있어요

일단 규칙은 다음과 같습니다.

  • 제목과 본문을 빈 행으로 분리한다
  • 제목 행을 50자로 제한한다
  • 제목 행 첫 글자는 대문자로 쓴다
  • 제목 행 끝에 마침표를 넣지 않는다
  • 제목 행에 명령문을 사용한다
  • 본문을 72자 단위로 개행한다
  • 어떻게 보다는 무엇과 왜를 설명한다

일단 쉽게 풀어서 설명해보면 커밋명은 영어로 하는것이 원칙입니다.
코드가 외부로 공유될 수 있기때문에 영어로 하는 것이 좋겠죠?
또한 한글보다 영어로 기술하는 것이 조금더 익숙해진다면 알아보기가 쉬워지고 규칙적으로 작성할 수 있게됩니다.


예를들어볼까요?

Fix failing CompositePropertySourceTests

위와 같은 커밋명을 보고 몇가지를 유추할 수 있어요 .
Fix - 뭔가를 고쳤다.
failing Composite~ - 이에 해당하는 걸 고쳤다.


저같은 경우에는 다음과 같이 나름의 규칙을 정해두고 커밋을해요.

  • 뭔가 기능이나 코드 / 페이지를 추가했을때 : Add
  • 코드의 리팩토링이나 최적화를 가져갔을때 : Rework
  • 버그나 에러가 발생해서 고쳤을 경우 : Fix
  • 이미 있는 코드나 기능에 변화나 향상을주었을 경우 : Update

당장 적용하기는 어렵겠지만, 나중에 포트폴리오로 제출할때도 저장소도 함께 제출하는 경우가 매우 많아서 아마 지금부터 힘들어도 연습하시면 좋은 결과가 있을것 같아요~

커밋 시점

추가적으로 커밋을 하는 시점또한 암묵적인 규칙이 있어요!!
보통은 하나의 기능을 추가하거나, 페이지를 완성했을 경우에 커밋을 진행하게 되는데, 이게 안지켜지면 어떤 단점이 있는지 설명해드릴게요.

  • 일단 이전 커밋으로 롤백을 해야하는데 커밋이 여러개로 나눠져 있다면 롤백하는 시점을 정하기가 여러워지고 작업량또한 많아지게 됩니다.
  • 두번째는 만약 관리자가 "커밋이 생겼구나? 한번 확인해봐야지~"라고 생각하고 커밋을 확인했는데 커밋내용이 한두줄밖에 없다면 힘든상황이 발생하고 말거에요..
  • 두번째와 관련해서 pullRequest라는걸 깃 관리자에게 요청할 일이 꼭 생길거에요. 이때도 좀더 수월하게 확인할수 있도록 커밋은 꼭 뭔가가 완성되었거나 수정이 완료되었다고 생각될때 진행해 주면 됩니다!

아마 어려우실 수도 있지만, 지금부터 안좋은 습관을 만드는것보다는 좋은습관을 만드는게 좀더 나중에 좋을것 같아서 말씀드려요!!
당장은 복잡하게 느껴지실수도 있지만, 이렇게 하면 꼭 도움이 되실거에요!!

참고로 개발끝나고 2년정도 서비스하며 유지보수한 velog의 커밋량이 600개 정도이니 어림잡을 수 있겠죠..??

1개의 댓글

comment-user-thumbnail
2020년 12월 7일

꿀팁 정말 감사드립니다!!
명심해야겠네요 :)

답글 달기