728x90
반응형
.git/hooks
git에는 특정 명령어 단계에 따라서 원하는 작동을 script로 실행할 수 있는 기능이 있다.
git으로 관리되는 repository에 들어가서 .git/hooks 를 살펴보면
pre-commit.sample, pre-merger-commit.sample 등등의 깃허브 명령어와 관련된 sample 파일들이 있다.
예를 들어 pre-commit 파일 script를 만들어서 실행할 수 있는 예시들이다.
$ nano .git/hooks/pre-commit 를 통해 아래 스크립트를 작성해서 commit 전에 실행시킬 수도 있다.
#!/bin/sh
if git-rev-parse --verify HEAD >/dev/null 2>&1 ; then
against=HEAD
else
# Initial commit: diff against an empty tree object
against=d555b46075d8d1fa2ed4d2424704105897c00d11
fi
# Find files with trailing whitespace
for FILE in `exec git diff-index --check --cached $against -- | sed '/^[+-]/d' | sed -r 's/:[0-9]+:.*//' | uniq` ; do
# Fix them!
sed -i 's/[[:space:]]*$//' "$FILE"
git add "$FILE"
done
exit
위 스크립트는 pre-commit 이므로, commit을 하기 전에 빈칸을 제거하는 리눅스 쉘스크립트이다.
이와 같은 식으로 git 과 관련된 특정 커맨드와 관련하여 원하는 이벤트를 스크립트로 실행 가능
* 다른 특정 언어로 스크립트로도 작성 가능
이때는
#!/bin/sh
에 해당하는 부분을 그 언어나 실행하려는 환경에 맞게 반드시 작성해줘야 한다.
이렇게 pre-commit을 추가한 후에는 script를 실행할 권한을 줘야하기 때문에
$ chmod +x .git/hooks/pre-commit
위와 같이 실행권한 주는게 필수이다.
728x90
반응형
'Git & Github' 카테고리의 다른 글
git hook: 특정 명령어 금지 시키기 (0) | 2024.01.20 |
---|---|
git remote 관리 (0) | 2024.01.19 |
git cherry-pick (0) | 2023.02.05 |
github ssh-key 여러 유저 등록 및 사용 # setting multiple github user with ssh-key (0) | 2023.01.16 |
github ssh-key 기본 등록 유저 바꾸기 # Change github ssh default user (0) | 2023.01.15 |