Post

Git - Commit Message Style Guide (2)

✨ 깃 커밋 메세지를 간단하게 써보자

요즘 GitHub를 좀 더 체계적으로 관리하려고 하다 보니 어떤 상황에 어떤 prefix(Gitmoji)를 써야하는지 헷갈리는 상황이 생겼다.

특히 커밋 메시지에서 Gitmoji를 사용할 때, 매번 이모지를 찾아서 작성하는게 다소 번거롭게 느껴지기도 했다.

그래서 이를 쉽게 도와줄 수 있는 라이브러리가 있는지 살펴보게 되었고, cz-customizable를 사용하는 방식을 알게 되어 적용하게 되었다.

💡 cz-customizable이란?

cz-customizable은 커밋 메시지를 쉽게 작성할 수 있도록 도와주는 커밋 도구로, npx cz를 실행하면, 커밋 메세지를 단계별로 물어보는데 미리 설정한 템플릿에 따라 커밋 메시지를 자동으로 작성해준다.

이를 통해 여러 명이 협업하는 프로젝트에서도 통일된 메시지를 유지할 수 있다.

📦 설치 방법

먼저 필요한 라이브러리를 설치해보자.

1
npm install -D commitizen cz-customizable

그리고 package.json에 다음처럼 설정한다.

1
2
3
4
5
6
7
{
    "config": {
        "commitizen": {
            "path": "cz-customizable"
        }
    }
}

⚒️ cz-config.js 작성하기

프로젝트 루트에 cz-config.js 파일을 만들고, 아래와 같이 작성했다. value 부분에는 prefix로 필요한 내용을 작성해주면 되는데, 이때 emoji를 작성하면, 커밋 할 때 일일히 emoji를 찾아서 작성할 번거로움이 줄어든다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
module.exports = {
  types: [
    { value: "🚀 feat", name: "🚀 feat: 새로운 기능 추가" },
    { value: "🐛 fix", name: "🐛 fix: 버그 수정" },
    { value: "♻️ refactor", name: "♻️ refactor: 리팩토링 (기능 변화 없음)" },
    { value: "📝 docs", name: "📝 docs: 문서 수정 (README 등)" },
    { value: "🎨 style", name: "🎨 style: 코드 스타일 변경 (포맷, 공백 등)" },
    { value: "✅ test", name: "✅ test: 테스트 코드 추가/수정" },
    {
      value: "🔧 config",
      name: "🔧 config: 설정 파일 수정 (ESLint, Babel 등)",
    },
    { value: "💄 design", name: "💄 design: UI/디자인 수정 (기능 변화 없음)" },
    { value: "🔀 rename", name: "🔀 rename: 파일/폴더 이름 변경" },
    { value: "🧹 chore", name: "🧹 chore: 기타 변경 (패키지 정리, 주석 등)" },
    { value: "⚙️ ci", name: "⚙️ ci: CI/CD 관련 설정 변경" },
    { value: "🎉 init", name: "🎉 init: 초기 커밋" },
  ],
  messages: {
    type: "어떤 종류의 변경인가요?:",
    scope: "변경 범위(옵션):",
    subject: "제목:\n",
    body: "본문 (Optional):\n",
    footer: "이슈 번호(Optional):",
    confirmCommit: "이 커밋 메시지로 커밋할까요?",
  },
  skipQuestions: ["breaking", "scope"],
  footerPrefix: "",
}

🧪 커밋하는 방법

1
git add .

일단 동일하게 깃 스테이징을 올려준다. 그 다음에 git commit -m 으로 커밋을 작성하는 것이 아니라 아래와 같이 작성한다.

1
npx cz

그러면 위에서 설정해 둔 프롬포트가 표시되는데, 프롬포트가 안내하는 순서대로 커밋 메세지를 작성해주면, 커밋 메시지가 작성된다.

🗂️참고 사이트

This post is licensed under CC BY 4.0 by the author.