提交前掛鉤
提交前掛鉤 #
pre-commit 是用於建立和執行 git hook 的架構。有關詳細資訊,請參閱官方文件:pre-commit.com
本文件提供詩詞所提供的可用提交前掛勾清單。
.pre-commit-config.yaml
中為掛鉤指定 args:
,預設值將被覆寫。如果您使用 args:
,您必須為掛鉤完整指定所有參數。pyproject.toml
檔案不在根目錄中,您可以指定 args: ["-C", "./subdirectory"]
。poetry-check #
poetry-check
掛鉤呼叫 poetry check
指令,以確保詩詞設定不會在損毀狀態下提交。
參數 #
掛鉤採取與詩詞指令相同的參數。有關詳細資訊,請參閱 check 指令。
poetry-lock #
poetry-lock
掛鉤呼叫 poetry lock
指令,以確保鎖定檔案在提交變更時是最新的。
參數 #
掛鉤採取與詩詞指令相同的參數。有關詳細資訊,請參閱 lock 指令。
poetry-export #
poetry-export
掛鉤呼叫 poetry export
指令,以將您的 requirements.txt
檔案與您的目前相依性進行同步。
引數 #
此掛勾採用與 poetry 指令相同的引數。如需詳細資料,請參閱 export 指令。
預設引數為 args: ["-f", "requirements.txt", "-o", "requirements.txt"]
,這會在目前工作目錄中建立或更新 requirements.txt
檔案。
你可以於 .pre-commit-config.yaml
中加入 verbose: true
以便輸出至主控台。
hooks:
- id: poetry-export
args: ["-f", "requirements.txt"]
verbose: true
而且,可以將 --dev
加入 args
,以寫入開發時期相關依賴項至 requirements.txt
。
hooks:
- id: poetry-export
args: ["--dev", "-f", "requirements.txt", "-o", "requirements.txt"]
poetry-install #
poetry-install
掛勾呼叫 poetry install
指令,以確保所有鎖定套件已安裝。如要安裝此掛勾,你需要指定 default_install_hook_types
,或透過 pre-commit install --install-hooks -t post-checkout -t post-merge
安裝。
引數 #
此掛勾採用與 poetry 指令相同的引數。如需詳細資料,請參閱 install 指令。
用法 #
如要深入瞭解如何使用 pre-commit,請參閱 官方文件。
極簡 .pre-commit-config.yaml
範例
repos:
- repo: https://github.com/python-poetry/poetry
rev: '' # add version here
hooks:
- id: poetry-check
- id: poetry-lock
- id: poetry-export
- id: poetry-install
適用於單一儲存庫設定或 pyproject.toml
檔案不在根目錄中的 .pre-commit-config.yaml
範例
repos:
- repo: https://github.com/python-poetry/poetry
rev: '' # add version here
hooks:
- id: poetry-check
args: ["-C", "./subdirectory"]
- id: poetry-lock
args: ["-C", "./subdirectory"]
- id: poetry-export
args: ["-C", "./subdirectory", "-f", "requirements.txt", "-o", "./subdirectory/requirements.txt"]
- id: poetry-install
args: ["-C", "./subdirectory"]
常見問題集 #
為什麼 pre-commit autoupdate
無法更新至最新版本? #
pre-commit autoupdate
會將 .pre-commit-config.yaml
中定義的每個儲存庫的 rev
更新至預設分支中的最新可用的標籤。
Poetry 採用分支策略,其中預設分支為活躍的開發分支,修正會套用回穩定分支。新的標籤會指定在這些穩定分支中。
pre-commit
不支援此類分支策略,因此決定不實作選項,無論是在 使用者方面 或 掛勾作者方面,用於定義用來尋找最新可用標籤的分支。
因此,pre-commit autoupdate
無法用於此處說明的掛勾。
透過使用--repo
參數(可以多次指定),你能避免意外變更 rev
。此參數能明列應更新的倉庫。顯式排除倉庫的選項已 不在pre-commit
中實作。