git commit 메시지에 자동으로 branch명 추가하기
사소한 일이지만 commit 메시지를 작성할 때마다 branch명을 붙여주는 것은 매우 귀찮은 일입니다. 이를 자동화하기 위해 git hook을 사용할 수 있는데 이러한 git hook 설정 또한 global 설정을 통해 새롭게 생성한 repository 또는 새롭게 clone한 repository에서도 자동으로 적용되도록 할 수 있습니다. 이번 포스팅에서는 git commit 메시지에 branch명을 자동으로 붙여주는 git hook을 설정하는 방법에 대해 알아보겠습니다.
git hook이란?
git hook은 git의 특정 이벤트가 발생했을 때 자동으로 실행되는 스크립트입니다. git hook은 크게 client-side hook과 server-side hook으로 나뉘며, client-side hook은 commit, push, merge 등의 이벤트에 대해 실행되고, server-side hook은 push, receive 등의 이벤트에 대해 실행됩니다. git hook은 git repository의 `.git/hooks` 디렉토리에 위치하고 있으며, 각 이벤트에 대한 스크립트 파일이 존재합니다. 이 스크립트 파일은 기본적으로 샘플로 제공되며, 사용자가 원하는 대로 수정하여 사용할 수 있습니다.
global git hook 설정하기
git hook은 기본적으로 repository 단위로 설정되지만, global 설정을 통해 모든 repository에서 사용할 수 있도록 설정할 수 있습니다. global git hook을 설정하기 위해서는 다음과 같은 단계를 거쳐야 합니다.
디렉토리 생성 및 git hook 작성
# 디렉토리 생성
mkdir -p ~/.git-templates/hooks
vim ~/.git-templates/hooks/prepare-commit-msg (아래 내용 작성)
#!/bin/bash
BRANCH_NAME=$(git symbolic-ref --short HEAD)
COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2
# 머지 커밋, 리베이스 등 자동 메시지는 제외
if [ "$COMMIT_SOURCE" = "merge" ] || [ "$COMMIT_SOURCE" = "squash" ]; then
exit 0
fi
# 메시지 앞에 브랜치 이름 삽입
sed -i.bak "1s/^/[$BRANCH_NAME] /" "$COMMIT_MSG_FILE"
global git hook 설정
# git hook에 실행 권한 부여
chmod +x ~/.git-templates/hooks/prepare-commit-msg
# git config에 global template 설정
git config --global init.templateDir '~/.git-templates'
실습 테스트
이제 간단하게 테스트를 해보겠습니다. 새로운 repository를 생성하고, 새로운 브랜치를 생성한 후 commit을 하고 commit 메시지를 확인해 보겠습니다.
# 새로운 repository 생성
mkdir test-repo
cd test-repo
# git 초기화
git init
# 새로운 브랜치 생성
git switch -c develop main
touch test.txt
git add test.txt
git commit -m "test commit"
결과 확인
test commit만 입력했지만 [main] test commit으로 작성된 것을 확인할 수 있습니다.

'git & github' 카테고리의 다른 글
| GitHub Actions 로컬 테스트 방법 (with act) (1) | 2025.07.15 |
|---|---|
| 주니어 개발자가 알면 좋은 git 명령어 정리 (1) | 2023.07.12 |
| git config (0) | 2023.07.11 |
| git commit template 설정하기 (0) | 2023.07.10 |