Git 커밋 메시지 작성에 대한 일반적인 규칙과 컨벤션

Sue·2025년 9월 8일
0
post-thumbnail

Git 커밋 메시지 작성에 대한 일반적인 규칙과 컨벤션에 대한 정리입니다.

잘 작성된 커밋 메시지는 프로젝트의 히스토리를 깔끔하게 관리하고, 다른 팀원들이 변경 사항을 쉽게 이해하도록 돕는 중요한 역할을 합니다.

좋은 커밋 메시지의 7가지 규칙

  1. 제목과 본문을 빈 줄로 구분하기

    • 첫 줄은 제목(subject), 그 다음 빈 줄을 두고 본문(body)을 작성하는 것이 일반적입니다.
  2. 제목은 50자 이내로 작성하기

    • 제목은 간결하게 핵심 내용을 담아야 합니다. 50자를 넘어가면 가독성이 떨어지므로, 너무 길게 작성하지 않도록 주의해야 합니다.
  3. 제목 첫 글자는 대문자로 시작하기

    • 예: Fix: Add missing feature (O)
    • 예: fix: add missing feature (X)
  4. 제목 끝에 마침표를 찍지 않기

    • 제목은 짧은 문구이므로, 마침표를 사용하지 않습니다.
  5. 명령형으로 작성하기

    • 커밋 메시지는 "내가 무엇을 변경했다"가 아니라, "이 커밋이 무엇을 하는가"에 초점을 맞춰야 합니다.
    • 예: Add new API endpoint (O)
    • 예: Added new API endpoint (X)
  6. 본문은 72자 이내로 줄바꿈하기

    • 본문은 제목에서 다루지 못한 상세 내용을 작성합니다. 줄이 너무 길어지지 않도록 한 줄에 72자 이내로 작성하는 것이 좋습니다.
  7. 본문은 "무엇을", "왜" 변경했는지 설명하기

    • 본문에는 커밋을 하게 된 동기(motivation)와 변경에 대한 상세 내용을 포함합니다. 어떻게 변경했는지 보다는 변경했는지에 대해 설명하는 것이 중요합니다.

일반적으로 사용되는 커밋 타입 컨벤션

많은 프로젝트에서 커밋 타입을 제목에 포함하는 컨벤션을 사용합니다. 이는 커밋의 목적을 한눈에 파악하게 도와줍니다. 가장 널리 사용되는 Conventional Commits 스펙을 기준으로 자주 쓰이는 타입을 정리해 드립니다.

**<type>(<scope>): <description>**

  • <type>: 커밋의 종류를 나타냅니다.
  • <scope>(선택 사항): 변경 사항이 미치는 범위를 나타냅니다.
  • <description>: 변경 사항에 대한 간결한 설명입니다.

자주 사용되는 <type> 예시:

  • feat: 새로운 기능 추가. (e.g., feat: Add user authentication)
  • fix: 버그 수정. (e.g., fix: Resolve login button crash)
  • docs: 문서 수정. (e.g., docs: Update API documentation)
  • style: 코드 스타일 변경 (세미콜론, 들여쓰기 등. 코드 동작에는 영향을 주지 않음). (e.g., style: Format code with Prettier)
  • refactor: 코드 리팩토링 (기능 변경 없이 코드 구조 개선). (e.g., refactor: Improve component logic)
  • test: 테스트 코드 추가 또는 수정. (e.g., test: Add unit tests for API)
  • chore: 빌드 시스템, 라이브러리, 의존성 관리 등 개발 환경 관련 변경. (e.g., chore: Update webpack configuration)

예시:

feat: Add a new user profile page

This commit introduces a new user profile page.
It includes a user's name, profile picture, and a list of their recent activity.
The page is accessible at /users/:username.

왜 커밋 메시지 컨벤션을 따라야 할까요?

  • 히스토리 파악 용이: 프로젝트의 변경 이력을 한눈에 쉽게 파악할 수 있습니다.
  • 코드 리뷰 효율성 증가: 팀원들이 커밋의 목적을 빠르게 이해하여 리뷰 시간을 단축할 수 있습니다.
  • 자동화: featfix 타입 등을 기준으로 릴리스 노트를 자동으로 생성하거나, 버전을 관리하는 등의 자동화 시스템을 구축할 수 있습니다.

팀에서 통일된 컨벤션을 정하고 지키는 것이 매우 중요합니다. 프로젝트를 시작하기 전에 팀원들과 커밋 메시지 규칙에 대해 논의하고 합의하는 것을 추천합니다.

profile
AI/ML Engineer

0개의 댓글