commit 메시지는 미래의 너를 위한 navigation
6개월 뒤 새벽 2시, 뭔가 망가질 거야. git log -p -- offending-file 돌리고 그 파일을 건드린 모든 commit 의 메시지를 읽겠지. 5분 만에 원인 찾느냐 2시간 헤매느냐는 거의 전적으로 과거의 네가 남긴 메시지에 달려 있어. "fix stuff", "wip", "asdf", "save" — 이건 commit 메시지가 아니야, 포기야.
관습적 모양이 잘 작동하는 이유는 history scan 에 최적화돼서야. 제목줄: imperative mood ("Add", "Fix", "Remove" — Git 한테 명령 내리듯이), 50자 이내, 마침표 없음. 빈 줄. 본문: 무엇 과 특히 왜 를 설명, 어떻게 는 안 함 (어떻게는 diff 가 이미 보여줌). 72자에서 줄 바꿈 — 그래야 git log 에서 스크롤 없이 읽혀. footer: issue 참조 ("Closes #142"), co-author, breaking-change marker.
팀 작업용 업그레이드 두 개. Conventional Commits 는 type prefix 를 붙여 (feat:, fix:, docs:, refactor:, test:, chore:) — release tooling 이 changelog 자동 생성 가능. 의미 있는 본문 은 Why, What changed, Risk, How to verify 같은 섹션으로 commit 을 review 가능한 증거로 바꾸고 "이거 뭐야?" Slack DM 의 대부분을 대체해.
실전 workflow: git add -p 로 stage, git commit (-m 없이) 으로 editor 열고, 3분 만에 진짜 메시지 쓰고 저장. 사소한 commit ("Fix typo in README") 엔 -m 괜찮지만 실질적인 commit 엔 적극적으로 해로워 — 한 줄 짜리로 끌어내려. push 전에 진짜 메시지 쓰기를 습관화해. commit 메시지는 미래의 너 자신이 누구보다 많이 읽어.