Skip to content

Commit 44a76c5

Browse files
feat: pre-commit에 대해서 작성하다
- 다음번은 uv 사용법에 대해서 작성할까?
1 parent 79446d2 commit 44a76c5

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
Title: Python pre-commit 설정하기
2+
Date: 2025-07-28 08:49
3+
Modified: 2025-07-28 08:49
4+
Category: Develop
5+
Tags: Python, Git, pre-commit, Git hooks
6+
Slug: python-precommit-설정하기
7+
Summary: 블로그를 만들고 처음으로 git hook을 설정해다.
8+
9+
다른 파이썬 프로젝트를 보다가 [ruff-pre-commit][1]이 설정되었는 것을 확인해서 적용해보기로 하고, 블로그에 작업을 시작.
10+
11+
# pre-commit
12+
13+
파이썬 라이브러리인 [pre-commit][2]. ~~12년된 프로젝트인데 왜 설정안했나? 나야?~~
14+
15+
나는 uv를 사용하니까 다음으로 설치.
16+
17+
```bash
18+
uv add --dev pre-commit
19+
```
20+
21+
`dev` 그룹으로 넣은건 커밋할때 빼고는 동작하지 않아도 되는걸 굳이 캐싱까지하는 CI에 넣어야하나 싶어서 이기도함.
22+
그냥 글만 쓰게 되는 환경을 구성하게되면, 수정을 해보는걸로...
23+
24+
# 설정
25+
26+
pre-commit에서 사용하는 설정은 `.pre-commit-config.yaml` 파일에 나열 해주면된다.
27+
28+
```yaml
29+
repos:
30+
- repo: https://github.com/astral-sh/ruff-pre-commit
31+
rev: v0.12.5
32+
hooks:
33+
- id: ruff-check
34+
args: [--fix]
35+
- id: ruff-format
36+
37+
- repo: https://github.com/pre-commit/pre-commit-hooks
38+
rev: v5.0.0
39+
hooks:
40+
- id: check-merge-conflict
41+
- id: check-toml
42+
- id: check-yaml
43+
- id: detect-private-key
44+
- id: end-of-file-fixer
45+
- id: mixed-line-ending
46+
- id: pretty-format-json
47+
args: [--autofix]
48+
- id: trailing-whitespace
49+
```
50+
51+
## pre-commit-config.yaml 파일 구조
52+
53+
내용을 다적을려고 했는데, 어떤 방법으로 보여주는게 좋을지 생각나지 않아 URL로 대체한다.
54+
55+
[여길 참고하자!](https://pre-commit.com/#adding-pre-commit-plugins-to-your-project)
56+
57+
# pre-commit plugins
58+
59+
- [pre-commit-hooks](https://github.com/pre-commit/pre-commit-hooks)
60+
- [ruff-pre-commit](https://github.com/charliermarsh/ruff-pre-commit)
61+
62+
# pre-commit cli
63+
64+
```bash
65+
# 설정 내역 반영
66+
pre-commit install
67+
68+
# 제거!
69+
pre-commit uninstall
70+
```
71+
72+
#
73+
74+
뭔가 더 적을까했으나, 뭔가 더 적을 만한게... 없다.
75+
한번만 설정해두면, 왠만해서는 변경할 일이 없으니, 한번 잘 작성해두고 두고두고 버전업만 하면서 사용하도록하자.
76+
그리고 `pre-commit`과 비슷한 동작을 하는 것들이 언어별로 있으니 Python이 아닌 다른 언어를 사용한다면, 언어에 맞는 것을 사용하기 바란다. 레포에 두가지이상 언어가 섞이면 어지럽다.
77+
78+
[1]: https://github.com/charliermarsh/ruff-pre-commit
79+
[2]: https://pre-commit.com/

0 commit comments

Comments
 (0)