Diff → Conventional Commit
git diff를 붙여넣으면 변경된 파일에서 type/scope를 자동으로 추론하여 커밋 메시지 템플릿을 생성합니다. Conventional Commits 준수, subject 50문자 검증, BREAKING CHANGE 감지, AI에 전달할 프롬프트도 생성합니다.
📋 diff 캡처 방법
# 모든 변경 git diff # 스테이지된 것 git diff --cached # 특정 커밋 git show abc123 # 파일명만 (너무 클 때) git diff --stat
📖 자주 걸리는 지점
git diff 의 출력을 붙여 넣으면 변경 파일과 증감 행에서 type 과 scope 을 추측해 Conventional Commits 형식의 커밋 메시지 견본과 AI 에 넘길 프롬프트를 조립합니다. 처리는 브라우저 안에서 끝납니다. 추측할 수 있는 것은 무엇을 바꿨는가까지이고, 왜 바꿨는가는 diff 어디에도 쓰여 있지 않습니다 — 그리고 나중에 읽는 사람이 알고 싶은 것은 언제나 후자 쪽입니다.
| 사례 | 무슨 일이 일어나는가 | 어떻게 하면 되는가 |
|---|---|---|
| 추측된 type 이 실제와 어긋난다 | type 은 파일의 경로와 확장자에서 추측하므로 같은 곳의 변경이라도 의도가 다르면 맞지 않습니다. 테스트 파일을 고치면 test 라고 나오지만, 그것이 버그 수정에 따른 기댓값 갱신이라면 fix 가 옳은 경우가 있습니다. docs 와 chore, refactor 와 fix 의 경계도 diff 로는 판별할 수 없습니다. |
추측은 출발점으로 쓰고 반드시 스스로 덮어쓰세요. 헷갈릴 때의 기준은 이용자 관점에서 동작이 바뀌었는가입니다. 바뀌었다면 feat 나 fix, 바뀌지 않았다면 refactor / chore / test / docs. 이 기준은 릴리스 노트를 자동 생성할 때 그대로 효과를 냅니다 — 이용자에게 보여야 할 변경만 위의 두 가지에 들어가므로 나중에 손으로 선별할 필요가 없어집니다. |
| 한 커밋에 여러 변경이 섞인다 | 추측된 scope 이 (*) 나 여러 개가 될 때는 커밋의 입도가 너무 크다는 신호입니다. 버그 수정과 리팩터링과 의존성 갱신이 하나에 들어 있으면 나중에 git revert 하고 싶어도 되돌리고 싶지 않은 부분까지 돌아갑니다. git bisect 로 원인을 좁힐 때도 걸린 커밋이 클수록 좁혀지지 않습니다. |
git add -p 로 헝크 단위로 나누어 스테이지하고 의미별로 커밋하세요. 이미 섞어 쓴 작업 트리에서도 이 방법으로 분할할 수 있습니다. 기준은 커밋 하나를 한 문장으로 설명할 수 있는가이며, 설명에 그리고가 들어가면 나누는 편이 좋다는 신호입니다. 나눈 커밋의 diff 를 이 화면에 개별로 붙이면 각각의 견본을 얻을 수 있습니다. |
| AI 에 diff 를 넘겼더니 요약만 돌아온다 | diff 만 넘기면 모델에게는 코드의 변화밖에 보이지 않습니다. 결과적으로 무엇을 추가했습니다, 무엇을 수정했습니다처럼 diff 를 읽으면 알 수 있는 것을 바꿔 말한 메시지가 돌아옵니다. 커밋 메시지의 가치는 diff 를 읽어도 알 수 없는 것을 쓰는 데 있으므로 이래서는 쓰는 의미가 없습니다. | 생성된 프롬프트에 이 변경을 한 이유를 1~2줄, 자신의 말로 덧붙여 넘기세요. 타임아웃 보고가 월 3건 있었기 때문에, 사양 변경으로 세율이 바뀌었기 때문에 같은 외부의 사실이 들어가는 것만으로 돌아오는 본문의 질이 달라집니다. 더해서 관련 이슈 번호를 적어 두면 반년 뒤에 읽는 사람이 경위까지 따라갈 수 있습니다. 템플릿 참고에는 프롬프트 라이브러리도 쓸 수 있습니다. |
Conventional Commits 를 따르는 실리는 커밋 메시지에서 CHANGELOG 와 버전 번호를 자동 생성할 수 있다는 점에 있습니다. fix 는 패치, feat 는 마이너, BREAKING CHANGE 를 포함한 것은 메이저로 semantic-release 등이 기계적으로 정해 줍니다. 반대로 말하면 규약을 지키지 않은 커밋이 하나만 섞여도 그 릴리스의 자동화는 신뢰할 수 없게 됩니다. 도입한다면 commitlint 를 pre-commit 훅에 넣어 서식을 기계에 지키게 하세요 — 사람의 의지만으로 계속 지켜진 규약은 본 적이 없습니다.
📖 사용법
-
1
diff 복사`git diff` 출력
-
2
붙여넣고 추정자동 추정
-
3
복사 후 커밋복사 → commit
❓ 자주 묻는 질문
type 추정?
AI 필수?
🐛 이 도구에서 문제가 발생했나요?
무료 · 가입 불필요. 재현 절차만이라도 도움이 됩니다. 보고는 운영자에게 직접 전달되어 개선에 사용됩니다.
보고 감사합니다!
운영자에게 전달되었습니다. 개선에 사용됩니다.