개발/Git

[Git] 좋은 commit message 작성

growing-dev 2023. 1. 8. 22:19

commit message가 중요한가요?

개발하면서 commit을 많이 하는데, commit message의 중요성을 간과하는 경우가 많다.

commit이 수백 수천 개가 되고, 수십 수백 명이 개발하는 환경이라면 더더욱 message의 명확성과 간결성이 중요해질 것이다. 

결국 개발은 사람이 하는 것이므로 사람이 이해하기 좋은 것(가독성)이 좋은  commit message라고 할 수 있을 것 같다.

 

그럼, 좋은 commit message는 무엇일까?

사실 좋은 commit message가 어떤 것이다라는 정답은 없다.

당연히, 회사, 과제, 인원들의 수준 등에 따라 달라질 수밖에 없고 또 달라져야 한다.

하지만 우리 S/W라는 분야는 언제나 그렇듯, 정답은 없지만 여러 시행착오를 거쳐 나온 일반 원리 혹은 정답에 가까운 규칙들은 존재한다.

 

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

좋은 Commit Message라고 검색하면 대부분 참고하는 곳이다.

https://cbea.ms/git-commit/

 

How to Write a Git Commit Message

Commit messages matter. Here's how to write them well.

cbea.ms

  • 제목과 본문을 한 줄 띄워 분리하기
  • 제목은 영문 기준 50자 이내로
  • 본문은 영문 기준 72자마다 줄 바꾸기

commit 8fdc819~  같은 경우는 한 줄을 띄었고, commit e07 d54~ 같은 경우는 붙여서 썼다.

길지 않은 테스트 commit message이긴 하지만 git log 와 git log --oneline 했을 때 표시되는 게 차이가 난다.

즉 한 줄 띄어 분리하는 것이 commit 이 많아 졌을 때 가독성 측면에서 훨씬 보기 편하다.

같은 맥락으로 제목이 길어지면 한 줄에, 한 눈에 보이지 않아서 역시 가독성 측면에서 좋지 않다.

본문 또한 길어지지 않게 일정 길이 이내로 제한하도록 권유하고 있다.

  • 제목 첫글자를 대문자로
  • 제목 끝에 . 금지

첫 글자를 대문자로 하는 것과, 제목 끝에. 을 금지한다는 내용은, 실제 영문법에서 사용되는 내용으로 자연스러운 영어로 문장처럼 읽히기 좋게 하기 위한 규칙이라고 생각된다. 상대적으로 덜 중요하지 않을까 싶다.

 

  • 제목은 명령조로

Modified, Fixed와 같이 내가 어제 이렇게 바꾼 내용을 commit 한다 는 느낌으로 하는 것보다는 Modify, Fix와 같이 명령조로 시작하는 것이 자연스럽다고 한다. 이는 Git 자체에 내장된 자동 commit message의 형식이 이렇게 되어 있어서 따라줘야 전체적인 message들이 자연스러워지기 때문이다.

 

  • 본문은 어떻게보다 무엇을, 왜에 맞춰 작성하기

결국 문제가 발생했거나, 신규 요구사항이 생겼거나 등 수정이 발생해서 commit이 발생한 것이다.

즉 commit message를 보는 주된 관심사는 무엇을 왜 바꾸었는지가 더 중요하다. 어떻게 바꾸었는지는 코드를 보면 되기 때문이다.

 

결론

commit message가 뭐가 그렇게 중요하겠나 싶지만 결국 의사소통과 협업의 문제로 이어지는 문제이니 만큼

가능한 주니어 때부터 습관적으로 가독성 좋고 명확한 commit message를 작성하는 버릇을 들여서 의사소통과 협업을 잘하도록 훈련해야 한다고 생각한다.

 

반응형