這個問題在這里已經有了答案: 跳過 Git 提交掛鉤 6 個答案 12 小時前關閉。
下面是我的專案的 .pre-commit-config.yaml 檔案。
# See https://pre-commit.com/hooks.html for more hooks
fail_fast: true
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.2.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
- repo: local
hooks:
- id: isort
name: isort
entry: isort
language: python
types: [python]
- repo: local
hooks:
- id: black
name: black
entry: black
language: python
types: [python]
- repo: local
hooks:
- id: pytest-check
name: pytest-check
#entry: pytest tests/test_file2.py
entry: pytest
language: python
#args: [--maxfail=1]
#stages: [post-commit]
pass_filenames: false
always_run: false
我想實作如下所述的兩件事。
- 有時,開發人員也修改了業務邏輯和測驗用例,并且由于某種原因而失敗。而且,如果測驗用例不斷失敗,那么就有丟失代碼的風險,因為預提交不允許提交更改,直到所有檢查均通過。因此,即使測驗用例失敗,我們也應該始終希望能夠提交功能分支。 注意:請記住,我想為pytest-check鉤子而不是其他鉤子實作上述場景。
- 根據我當前對 pre-commit-config.yaml 檔案的配置,它執行完整的測驗套件。但我想為特定的測驗用例檔案執行它。
供參考。- 我已經探索了一種繞過預提交的方法,但它適用于 .pre-commit-config.yaml 檔案中提到的所有鉤子。
我們如何才能實作所有這兩種情況?請提出您的意見?
uj5u.com熱心網友回復:
將您的測驗變成一個 shell 腳本,該腳本實際上執行,
pytest tests/test_file2.py (or whatever you are doing now)
true
最后一個命令也可以是exit 0,或任何其他成功退出的命令。)這樣測驗將運行,具有您現在擁有的副作用和輸出,但 git 將始終將它們視為成功。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/491529.html
標籤:Python 混帐 预提交钩子 pre-commit.com
下一篇:Git側分支覆寫了主分支?
