IT

Git Commit Convention

겨울에 익은 과일 2023. 8. 30. 20:28

들어가며

어떻게 하면 협업을 잘 할 수 있을까? 를 고민할 때 빠지지 않는 것 중 하나가 어떻게 하면 커밋 메세지를 잘 쓸 수 있을까? 이죠. 커밋 메세지는 코드보다 더 유연하고 동일한 이슈도 사람마다 다르게 표현할 수 있는 부분이라, 커밋 메세지가 많이 누적될 수록 가독성은 점점 떨어질 수 밖에 없어요. 코드 리뷰에 도움이 되고 작업 히스토리를 잘 관리하기 위해서 사내 커밋 메세지 스타일을 정해본 적이 있는데, 그 내용을 공유합니다.

목표는 이거인데요.

  • 1커밋 1깃모지를 사용하여, 커밋 작업 단위에 대한 생각을 재고합니다.
  • 1커밋 1작업단위 원칙을 준수하여, 커밋의 목적을 명확하게 하고 의사소통의 효율성을 높입니다.
  • 1커밋 1이슈 를 권장하여, 이슈 작업 범위의 일관성도 동시에 노려봅니다.

 

그러니까 이렇게 합시다.

커밋할 때는 이렇게 하기로 해요.

:gitmoji: 제목
****(한 줄을 띄워 분리)
- 본문 (Optional)
(한 줄을 띄워 분리)
[ 이슈코드 ]
:fire: 카톡상담 삭제
****
- 카톡상담 대신 채널톡 사용

[WALL-150]

 

언어

한국어를 사용합시다. 커밋은 우리끼리의 공유 기록이고, 우리는 모두 한국어를 잘 하니, 한국어를 사용해요.

 

gitmoji

깃모지는 “Git + Emoji” 를 의미합니다. 기존에 문자로 타입을 명시하던 것 대신, 정해진 이모지를 활용하여 커밋의 목적과 의도를 명확하게 표현합니다.

gitmoji를 도입하면 다음과 같은 장점이 있어요.

  • 커밋의 목적을 빠르게 인지할 수 있어요.
  • 한 커밋에 하나의 목적만을 담도록 어느 정도 강제하는 역할을 합니다. 하나의 깃모지를 쓰기 위해서죠.
  • 그리고.. 귀엽습니다. 재밌고요. 🤭

반대로 다음과 같은 단점이 있을 수 있어요.

  • 이모지를 언제 하나하나 찾냐는 부담감을 가질 수 있어요. → 그러나 플러그인과 cli가 있습니다.
  • 처음보는 사람은 의미를 알기 힘들 수 있어요. → 그러나 우리는 담당자가 정해져있는 솔루션 개발자입니다.

고로, 사용..하고 싶어요. 사용하게 해주세요...🤭

사용할 때는 이렇게 하면 편합니다.

 

 

제목

  • 최대 50글자(1 줄 내)가 넘지 않도록 하고, 마지막 마침표는 사용하지 않습니다.
  • 문장형을 사용하지 않습니다. 주어(or 목적어)와 현재 동사로 표현해주세요.
    • ex) 카톡상담 삭제
  • 이왕이면 “추가, 변경, 고침, 삭제”와 비슷한 의미를 가진 단어는 “추가, 변경, 고침, 삭제” 용어로 통일해주세요.

 

본문 (Optional)

  • 무엇을 왜 했는지에 대해 설명이 필요하다고 생각하면 작성합니다.

 

꼬릿말: 이슈 코드

  • jira 에 등록된 이슈 코드를 입력하여, jira 에서 커밋 내역을 추적할 수 있도록 합니다.
  • 커밋과 작업 내용이 일치하는 이슈는 [이슈코드]로 작성하고, 연관 이슈를 같이 기록해두고 싶다면 연관 이슈는 [Related to: 이슈코드]로 작성합니다.

 

 

마지막으로

예쁘고 가시성 좋은 커밋 메세지를 잠깐 훑어보고, 아! 이번에 누가 어떤 일을 했구나! 라고 바로 알 수 있는 날이 머지 않았다고 생각해요.

우리 모두 화이팅!!