# Git 커밋 메시지 자동화 방법

> Clean Markdown view of GeekNews topic #9394. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=9394](https://news.hada.io/topic?id=9394)
- GeekNews Markdown: [https://news.hada.io/topic/9394.md](https://news.hada.io/topic/9394.md)
- Type: news
- Author: [ironlung](https://news.hada.io/@ironlung)
- Published: 2023-06-14T16:28:10+09:00
- Updated: 2023-06-14T16:28:10+09:00
- Original source: [insight.infograb.net](https://insight.infograb.net/blog/2023/05/25/git-commit-automation)
- Points: 25
- Comments: 2

## Topic Body

*git 커밋 메시지 작성하며 곤혹스러울 때  
- 이모지를 쓰고 이슈 번호도 넣은 커밋 메시지는 추적하기 쉽고, 보기 좋음  
- But 커밋 메시지가 길고 복잡할수록 매번 불편하고 실수도 잦음  
- 매번 적절한 이모지를 찾는 일은 고역  
  
*Git Hooks로 git 커밋 메시지 강제하기  
- Git Hooks는 Git 관련 이벤트가 발생했을 때 우리가 정한 스크립트를 실행하는 기능  
- 이 기능은 서버 훅과 클라이언트 훅으로 나뉨  
  
*서버 훅: Git의 push rule 기능 사용하기  
- pre-receive 훅에 커밋 메시지를 검사하는 스크립트를 넣으면 서버에 푸시되지 않도록 함  
- GitLab에서는 push rule 기능을 사용해 정규 표현식으로 커밋 메시지를 검사 가능  
- 정규 표현식을 위배하는 커밋 메시지를 감지하면 해당 푸시를 거부하고 오류를 일으킴  
  
*클라이언트 훅: 푸시하기 전 미리 검사하기  
- 커밋을 최종 완료하기 전인 commit-msg 훅에 스크립트를 만들어 커밋 메시지 검사 가능  
- 커밋 메시지를 수정하고 싶다면 prepare-commit-msg 훅에 관련 스크립트 작성  
  
*인포그랩의 커밋 메시지 자동화 방법  
- Husky와 Commitlint를 사용해 커밋 메시지 자동화 체계 만듦  
- Husky는 Git Hooks 관리를 돕는 npm 모듈. .husky 디렉터리 아래에 스크립트를 담은 훅 파일을 만듦. 그 다음, npx husky install 명령을 입력하면 해당 스크립트가 git에 등록  
- commitlint는 커밋 컨벤션을 쉽게 관리하고 커밋 메시지를 검사하는 도구. 팀에서 정한 커밋 컨벤션을 JSON 형식으로 작성. 그러면 commitlint 명령을 사용해 메시지를 검사  
  
1)커밋 컨벤션을 commitlint 형식으로 정의  
- 커밋 메시지의 기본 틀을 기준으로 commitlint.config.ts 파일에 각 팀에 맞는 속성 정의  
  
2)Husky에 commitlint 등록  
- commit-msg 훅에 commitlint 명령 등록. .husky/commit-msg 파일에 스크립트 넣음  
  
3)자동화 추가  
- 이모지를 붙이거나 이슈 번호를 삽입하는 작업 자동화  
- 인포그랩 프로덕트 팀에서는 타입(feat, fix)만 입력하면 이모지를 자동 추가, 타입의 첫 글자만 대문자로 자동 수정, 브랜치에 이슈 번호가 있으면 footer에 이슈 번호 자동으로 붙이기 설정함  
- 자동화 스크립트는 prepare-commit-msg 훅에 넣을 수 있음

## Comments



### Comment 16640

- Author: yangeok
- Created: 2023-06-20T19:53:10+09:00
- Points: 1

commitizen랑 같이 써도 좋읍니다

### Comment 16704

- Author: roxie
- Created: 2023-06-24T05:38:07+09:00
- Points: 1
- Parent comment: 16640
- Depth: 1

좋은 툴 감사합니다
