커밋 시 항상 앞에 이슈번호를 넣어주어야 하는 번거로움을 자동으로 넣어주도록 처리하는 방법
.git/hooks
디렉토리에prepare-commit-msg
파일을 생성하면 사용자가 커밋 메시지를 입력하기 전 단계에서 내용을 변경할 수 있다.
prepare-commit-msg
파일 수정
- 위치: .git > hooks > prepare-commit-msg.sample
기본으로 확장자가
.sample
로 처리되어 있으며 사용하고 싶은 파일에 스크립트를 작성한뒤에 뒤의 확장자 제거
1 | #!/bin/bash |
플로우
- 브랜치 네이밍이
issue/{이슈티켓}
,feature/{이슈티켓}
으로 시작하는 특정 브랜치인 경우에만 적용
a.master
,develop
,qa
,release
,hotfix
인 브랜치 경우에는 적용 안되게 스킵 - 브랜치 이름으로부터 Jira 이슈 번호 가져오기
a. 예를 들어 feature/ESFH-1234-xxxx-yyyy 인경우 ESFH-1234 추출 - 커밋 메세지에 이미 Jira 이슈번호를 기재했다면 적용 안되게 스킵
- 위의 경우를 다 검증한뒤, 커밋메세지 앞에 Jira 이슈번호를 추가
[테스트]
- 지라이슈 브랜치 생성
- feature/ESFH-1
- 커밋 명령어 실행:
1
$ git commit -m “Core 초기 개발”
- 메시지 커밋 결과
1
* #ESFH-1 - Core 초기 개발
Hook 레파지토리 연동 (공통화)
기존 저장소에 한 번에 적용할 수 있는 스크립트를 만들어 커스텀 hook 을 공통으로 적용하고 싶은 프로젝트에 아래 터미널 명령어를 사용 (프로젝트 root 에서 커맨드 입력)
Linux
1 | $ curl -L -H "Authorization: token <TOKEN>" https://api.github.com/repos/<저장소 URL>/tarball/master | tar -xzv --strip-components=1 \ |
Windows
1 | Invoke-WebRequest -Uri 'https://api.github.com/repos/<저장소 URL>/zipball/master' -Headers @{Authorization='token <TOKEN>'} -OutFile 'master.zip';` |