Created at : 2025-01-05 23:51
Auther: Soo.Y
๐๋ฉ๋ชจ
pre-commit ์ด๋?
pre-commit์ Git์์ ์ปค๋ฐ์ ์คํํ๊ธฐ ์ ์ ํน์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋์ผ๋ก ์คํํ๋๋ก ์ค์ ํ ์ ์๋ ๋๊ตฌ์ ๋๋ค. ์ด ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋ฉ ์คํ์ผ๊ณผ ์ฝ๋ ํ์ง์ ์ฌ์ ์ ๊ฒ์ฆํ์ฌ ํ์ ๊ฐ ์ฝ๋ ๊ท์น์ ์ผ๊ด์ฑ ์๊ฒ ์ ์งํ ์ ์์ต๋๋ค. github : pre-commit github
pre-commit ์ฃผ์ ๊ธฐ๋ฅ
- ์ฝ๋ ํ์ง ๋ณด์ฅ: ์ฝ๋ ์คํ์ผ ์ค๋ฅ์ ๊ฐ๋จํ ๋ฒ๊ทธ๋ฅผ ๋ฏธ๋ฆฌ ์ก์๋
- ์๊ฐ ์ ์ฝ: ์ฝ๋ ๋ฆฌ๋ทฐ ๋จ๊ณ์์ ๋ฐ์ํ๋ ์์ ์์ ์ ์ค์ฌ์ค
- ํ์ ๊ฐ์ : ์ฝ๋ ๊ท์น ์ค์๊ฐ ์๋ํ๋๋ฏ๋ก ํ์ ๊ฐ์ ์ฝ๋ ์ถฉ๋ ์ต์ํ
pre-commit install
pip ๋๋ poetry๋ก ๊ฐ๋จํ๊ฒ pre-commit์ ์ค์นํ ์ ์๋ค.
poetry add pre-commit
# or pip install pre-commit
pre-commit ์ค์ ํ์ผ์ ์๋์ ๊ฐ์ด ๊ธฐ๋ณธ ์ค์ ์ผ๋ก ๋จผ์ ์์ฑํฉ๋๋ค.
pre-commit sample-config > .pre-commit-config.yaml
์ฌ๊ธฐ์๋ Black ํฌ๋งทํ ์ผ๋ก ์ค์ ํ๋ ๋ด์ฉ์ ์ถ๊ฐํฉ๋๋ค.
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
- repo: https://github.com/psf/black
rev: stable
hooks:
- id: black
pre-commit ์ค์น ๋ฐ ์คํ
์์์ ์ค์ ํ ํ์ผ์ ๊ธฐ์ค์ผ๋ก pre-commit์ ์ค์นํฉ๋๋ค. pre-commit autoupdate
๋ฅผ ์ฌ์ฉํด์ .pre-commit-config.yaml
ํ์ผ์ ์์ฑ๋ ๋ฒ์ ์ ์
๋ฐ์ดํธ ํด์ค๋๋ค. ์๋ฅผ ๋ค์ด black์ stable์ด 24.10.0์ผ๋ก ์
๋ฐ์ดํธ ๋์๊ณ pre-commit์ 5.0.0์ผ๋ก ์
๋ฐ์ดํธํด์ ์ค์ ํ์ผ์ด ์๋กญ๊ฒ ์์ฑ๋๋ค.
pre-commit autoupdate # ์ค์ ๋ ํ์ผ์ ๊ธฐ์ค์ผ๋ก ๋ฒ์ ์
๋ฐ์ดํธ
pre-commit install # ์ค์น
pre-commit run --all-files # ์คํ