소프트웨어 개발의 세계에서 깨끗하고 탐색 가능한 커밋 이력을 유지하는 것은 단순한 깔끔함의 문제가 아니라 효율적인 팀워크와 프로젝트 관리의 초석이다. 커밋 메시지는 일기장이나 로그북 역할을 하며, 각 변경 사항의 이유와 내용에 대한 통찰을 제공한다.

이 가이드는 다양한 운영 체제에서 SemVer 및 Conventional Commits와 같은 커밋 메시지 표준을 강제하는 솔루션으로 Git Hooks를 소개한다.

Git Hooks란 무엇인가?

Git Hooks는 커밋, 푸시, 머지 작업과 같은 Git 라이프사이클 이벤트 전후에 자동으로 실행되는 스크립트다. 수동 감독 없이 프로젝트 규칙과 워크플로우를 자동화하고 강제하는 강력한 도구다.

커밋 메시지 표준 강제하기

커밋 메시지 규칙:

  1. SemVer 및 Conventional Commits: 커밋 메시지는 타입(feat, fix 등)으로 시작하고, 선택적으로 스코프와 변경 사항에 대한 간결한 설명이 뒤따라야 한다. 예: feat(database): Add user authentication mechanism.
  2. 최소 단어 수: 커밋 메시지는 설명의 명확성을 보장하기 위해 최소 10단어를 포함해야 한다.

Hook 구현:

#!/bin/sh
message=$(cat $1)
word_count=$(echo $message | wc -w)

if ! echo “$message” | grep -qE “^(feat|fix|docs|style|refactor|perf|test|chore)((\S+))?: .{10,}$”; then echo “Commit message does not follow Conventional Commits standards.” exit 1 fi

if [ “$word_count” -lt 10 ]; then echo “Commit message must be at least 10 words.” exit 1 fi

결론

커밋 메시지 표준을 강제하기 위해 Git Hooks를 구현하는 것은 높은 품질의 코드베이스와 효율적인 팀 협업을 유지하기 위한 강력한 전략이다. 이 가이드에 설명된 단계를 따르면 다양한 운영 체제에서 작동하는 시스템을 설정하여 프로젝트의 커밋 이력에 일관성과 명확성을 보장할 수 있다.