Python pre-commit hook 設置步驟

在 mac OS 上的操作步驟

丁叮盯町
3 min readSep 15, 2020

開始前的小觀念

Pre-commit的設定是針對個別的local repositories的,也就是說每個local repository都要針對需求個別設定。

開始設定

打開Terminal,安裝”pre-commit”

pip3 install pre-commit

安裝需要一些時間,完成後進入local repository目錄(.git所在目錄)

cd /Users/{Your_Name}/Documents/LocalRepo

檢查.pre-commit-config.yaml 這個 config 檔,是否在目錄內。

ls -a

如果config檔不在,可以參考以下設置:

先用 vi 創建一個 .pre-commit-config.yaml 檔

vi .pre-commit-config.yaml

並在 vi 編輯器貼上以下內容,編輯完畢後退出保存。

repos:
— repo: https://github.com/jleclanche/tan
rev: stable
hooks:
— id: black
entry: tan
args: [ — use-tabs]
language_version: python3.8
— repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.0.0
hooks:
— id: flake8

設定完 .pre-commit-config.yaml 檔後,就可以將 pre-commit 設定到 git hooks 了。

pre-commit install

如果出現 “pre-commit: command not found” 之類的錯誤,請檢查看看環境變數。

echo $PATH

如果 “/Users/{Your_Name}/Library/Python/3.8/bin” 不在其中,請補上去。

PATH=$PATH:/Users/{Your_Name}/Library/Python/3.8/bin

基本上,這樣該 repository 的 pre-commit 就設置完了。

補充:flake8 的客製化

在 .git所在目錄下,打開 .flake8 隱藏檔,可以做客製化設定。(如果沒有該檔案,一樣用 vi 創一個。)

[flake8]
max-line-length = 100
extend-ignore = E101, E117, E203, E501, W191, W291, W293

關於 flake8,可以參考以上的設定。
flake8 的詳細 error codes 描述,可以參考我另一篇文章:

flake8 錯誤碼列表

--

--

丁叮盯町
丁叮盯町

Written by 丁叮盯町

0 Followers

單純的程序猿,想寫些什麼記錄生活、記錄所學

No responses yet