📍Commit Message
Git에서 협업을 진행하다보면 서로가 정해둔 규칙외에 다른 방식으로 커밋 메세지를 올리는 경우가 있다. 빠르게 작업하다가 실수를 할 수도 있고, 처음 접하는 프로젝트에서는 아예 해당 규칙을 모르는 상태로 커밋을 하는 경우도 있다. 이런 케이스를 husky 설정으로 원천적으로 방지해줄 수 있다.
📋 Husky 란?
Husky에 대해 알기전에 Git Hook이 뭔지 알고 넘어가야 한다. Git hook이란 커밋이나, 머지 같이 git과 관련된 이벤트가 발생했을 때, 특정 동작이 실행될 수 있도록 해주는 기능이다. Husky는 Git hook을 쉽게 관리하고 실행할 수 있게 해주는 도구이다! 이를 통해서 코드 품질, 일정한 커밋 메세지, 배포 전 안전장치 등을 추가해 둘 수 있다. 여기서는 커밋 메세지를 관리하는 방법만 살펴볼 예정이다.
🖥️ 설치하기
// 설치
pnpm add husky -D
// Git hooks 활성화
npx husky init
// commit-msg 훅 생성 (예: commitlint 실행)
npx husky add .husky/commit-msg "pnpm commitlint --edit \$1"
위 순서를 따르면 커밋 진행시에 .commitlintrc.mjs 에 있는 규칙으로 메세지를 검증한다.
나의 경우 {작업 알파벳} {대쉬} {넘버} 로 이루어져있는데 .commitlintrc.mjs에 아래와 같이 추가 해주었다.
export default {
extends: ['@commitlint/config-conventional'],
rules: {
'header-pattern': [2, 'always', /^[A-Z]{2,}-\d+\s+.+/],
},
};
이렇게 규칙을 추가해주고 해당 규칙에 맞지 않는 커밋 메세지를 설정하면 정상적으로 진행되지 않고 막힌다.
다만 터미널에 복잡하게(?) 에러를 표출해준다. 위 설정파일에 추가적으로 관련 내용을 적어주면 해당 에러도 편안하게 확인 가능하다.
export default {
extends: ['@commitlint/config-conventional'],
rules: {
// 가장 첫 숫자 의미 === 0: 비활성화, 1: 경고-커밋허용, 2:에러-커밋차단
'header-pattern': [2, 'always', /^[A-Z]{2,}-\d+\s+.+/],
},
// plugin 부분 추가!!
plugins: [
{
rules: {
'header-pattern': ({ raw }) => {
const pattern = /^[A-Z]{2,}-\d+\s+.+/;
return [pattern.test(raw), '이렇게만 해야함'];
},
},
},
],
};
그러면 친절하게 아래 이미지 처럼 설정한 값으로 에러를 표기해준다.
위 커밋메세지 제한 수위도 정할 수 있으니 팀원들과의 이야기를 통해서 추가해두면 되지 싶다.

이제 커밋메세지 이상하게 날리면
핰씨

'개발 지식' 카테고리의 다른 글
| [Cursor] Cursor Rules 적용, 세분화하기 (2) | 2025.09.15 |
|---|---|
| [Cursor] Cursor Rules 적용 (0) | 2025.09.11 |
| [vscode] Todo Tree 로 코드 TODO 관리하기 (0) | 2025.06.09 |
| [nvmrc] nvm use 자동 적용시키기 (feat. zshrc) (0) | 2025.03.14 |
| [리눅스] bin 폴더가 뭐야? (feat. /bin, /usr/bin, /usr/local/bin) (1) | 2025.03.05 |