commit message는 미래에 이력을 찾는 표지판이야
6개월 뒤 새벽 2시에 뭔가 망가졌다고 해보자. git log -p -- offending-file을 실행하고 그 파일을 건드린 commit의 message를 하나씩 읽게 될 거야. 원인을 5분 만에 찾을지 두 시간을 헤맬지는 과거의 네가 남긴 말에 크게 달려 있어. "fix stuff", "wip", "asdf", "save"는 message가 아니라 기록을 포기한 흔적이야.
널리 쓰는 형식은 이력을 훑어보기에 알맞아서 살아남았어. 제목: "Add", "Fix", "Remove"처럼 Git에 명령하듯 쓰고, 50자 안팎으로 마침표 없이 끝내. 빈 줄. 본문: 무엇을, 특히 왜 바꿨는지 설명해. 어떻게 바꿨는지는 diff가 이미 보여줘. 72자쯤에서 줄을 바꾸면 git log에서도 편하게 읽혀. footer: issue 참조("Closes #142"), co-author, breaking-change marker를 둬.
팀 작업에는 두 가지를 더할 수 있어. Conventional Commits는 feat:, fix:, docs:, refactor:, test:, chore: 같은 type prefix를 붙여 release 도구가 changelog를 자동 생성하게 해. 의미 있는 본문은 Why, What changed, Risk, How to verify 같은 구획으로 commit을 검토할 수 있는 증거로 바꿔. "이거 뭐야?"라는 Slack DM도 크게 줄어들지.
실전에서는 git add -p로 stage하고 git commit을 실행해 편집기에서 제대로 된 message를 써. "Fix typo in README" 같은 사소한 commit에는 -m도 괜찮지만, 실질적인 변경을 한 줄짜리 설명으로 몰아넣는 습관은 해로워. push 전에 이유가 남는 message를 쓰는 습관을 들여. 미래에 가장 많이 읽을 사람은 바로 너야.