본문 바로가기
공부/Git

[pre-commit] local repository 사용하기

by haejang 2023. 5. 8.
728x90
728x90

 

# Git Hook이란?

https://git-scm.com/docs/githooks

 

Git - githooks Documentation

Hooks are programs you can place in a hooks directory to trigger actions at certain points in git’s execution. Hooks that don’t have the executable bit set are ignored. By default the hooks directory is $GIT_DIR/hooks, but that can be changed via the c

git-scm.com

commit이나 push같은 이벤트 발생 시 동작

.git/hooks 폴더를 확인하면 여러 hook들에 대한 sample 파일들을 확인할 수 있다

 

# pre-commit이란?

https://pre-commit.com/

 

pre-commit

 

pre-commit.com

위 hook들 중 pre-commit hook용 프레임워크이다

.pre-commit-config.yaml 파일을 구성하여 사용할 수 있다.

sample config는 아래와 같다.

$ pre-commit sample-config
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v3.2.0
    hooks:
    -   id: trailing-whitespace
    -   id: end-of-file-fixer
    -   id: check-yaml
    -   id: check-added-large-files

add되어 staging 상태에 있는 file들에 대해 pre-commit에 명시된 코드들이 돌아간다고 생각하면 된다

lint, black, isort 등을 많이 사용한다

 

# pre-commit 설치 및 세팅 (MAC)

# pre-commit 설치
brew install pre-commit

# sample config 확인
pre-commit sample-config

 

pre-commit hook으로 사용할 수 있는 것들은 알아서 알아보자. docs에도 인터넷 여기저기에도 레퍼런스는 많다

나는 repo 내에 작성해둔 간단한 스크립트를 pre-commit으로 돌리고 싶었다

-> local repository를 사용하면 된다

repos:
- repo: local
  hooks:
  - id: test_script
    name: test_script
    entry: ./test_script.sh
    language: script
    types: [file]
    pass_filenames: false

 

이렇게 하니까 된다

 

끝!

 

 

728x90
728x90

댓글