프론트엔드 개발
[Git hooks] git commit시 branch name 자동반영 본문
이번에 지라 처음 사용하면서 알아본 것
- feature 브런치 feature/SCRUM-0000_whatEver 같이 설정
- 기존 commit 규칙: [SCRUM-0000] commit 내용
- [SCRUM-0000]을 자동 반영하고 싶어서 알아본 것 Git hook
Git Hook란
Git Hooks 는 Git과 관련한 어떤 이벤트가 발생했을 때 특정 스크립트를 실행할 수 있도록 하는 기능이다.
크게 클라이언트 훅 과 서버 훅 으로 나뉘는데 클라이언트 훅 은 커밋, Merge 가 발생하거나 push 가 발생하기 전 클라이언트에서 실행하는 훅이다. 반면 서버 훅 은 Git repository로 push 가 발생했을 때 서버에서 실행하는 훅이다.
설정 방법
- 프로젝트 내에 숨겨진 파일. git에 들어가면 hooks에 여러 sample이 있는데
- prepare-commit-msg 파일을 만들고 다음과 같이 작성했다.
- prepare-commit-msg 훅은 Git이 커밋 메시지를 생성하고 나서 편집기를 실행하기 전에 실행된다.
#!/bin/bash
if [ -z "$BRANCHES_TO_SKIP" ]; then
BRANCHES_TO_SKIP=(main develop release)
fi
BRANCH_NAME=$(git symbolic-ref --short HEAD)
BRANCH_NAME="${BRANCH_NAME##*/}"
JIRA_ID=`echo $BRANCH_NAME | egrep -o 'SCRUM-[0-9]+'`
echo ${BRANCH_NAME}
echo ${JIRA_ID}
BRANCH_EXCLUDED=$(printf "%s\n" "${BRANCHES_TO_SKIP[@]}" | grep -c "^$BRANCH_NAME$")
BRANCH_IN_COMMIT=$(grep -c "$JIRA_ID" $1)
if [ -n $JIRA_ID ] && ! [[ $BRANCH_EXCLUDED -eq 1 ]] && ! [[ $BRANCH_IN_COMMIT -ge 1 ]]; then
sed -i.bak -e "1s/^/[$JIRA_ID] /" $1
fi
- BRANCH_NAME과 JIRA_ID를 테스트해서 뽑아보았다.
출처:
'Front-End > git' 카테고리의 다른 글
git branch 삭제 (0) | 2022.08.30 |
---|---|
[git 토큰 인증]remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. (0) | 2021.08.14 |
remote repository 하위 항목 clone (0) | 2021.08.11 |
Comments