我正在開發一個pre-commit==2.15.0添加到 python 需求檔案中的專案。我安裝了要求。現在,當我嘗試執行 a 時git commit,出現以下錯誤:
An unexpected error has occurred: ExecutableNotFoundError: Executable `/bin/sh` not found
Check the log at C:\Users\username\.cache\pre-commit\pre-commit.log
在我的預提交日志中,我有:
pre-commit version: 2.15.0
sys.version:
3.9.0 (tags/v3.9.0:9cf6752, Oct 5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)]
sys.executable: c:\users\username\appdata\local\programs\python\python39\python.exe
os.name: nt
sys.platform: win32
Traceback (most recent call last):
File "c:\users\username\appdata\local\programs\python\python39\lib\site-packages\pre_commit\error_handler.py", line 65, in error_handler
yield
File "c:\users\username\appdata\local\programs\python\python39\lib\site-packages\pre_commit\main.py", line 368, in main
return hook_impl(
File "c:\users\username\appdata\local\programs\python\python39\lib\site-packages\pre_commit\commands\hook_impl.py", line 231, in hook_impl
retv, stdin = _run_legacy(hook_type, hook_dir, args)
File "c:\users\username\appdata\local\programs\python\python39\lib\site-packages\pre_commit\commands\hook_impl.py", line 42, in _run_legacy
cmd = normalize_cmd((legacy_hook, *args))
File "c:\users\username\appdata\local\programs\python\python39\lib\site-packages\pre_commit\parse_shebang.py", line 82, in normalize_cmd
exe = normexe(cmd[0])
File "c:\users\username\appdata\local\programs\python\python39\lib\site-packages\pre_commit\parse_shebang.py", line 61, in normexe
_error('not found')
File "c:\users\username\appdata\local\programs\python\python39\lib\site-packages\pre_commit\parse_shebang.py", line 51, in _error
raise ExecutableNotFoundError(f'Executable `{orig}` {msg}')
pre_commit.parse_shebang.ExecutableNotFoundError: Executable `/bin/sh` not found
我在 Windows 上作業,而我的隊友在 Mac 上作業。
看起來 precommit 正在嘗試參考/bin/sh不在 Windows 中的腳本。我如何讓這個預先提交作業?
uj5u.com熱心網友回復:
您以前的 git 鉤子使用的是不可移植的 shebang ( #!/bin/sh) (在您的情況下,此檔案將位于.git/hooks/pre-commit.legacy- 最初.git/hooks/pre-commit)
如果您調整要使用的工具,#!/usr/bin/env sh那么預提交將能夠運行它(即使在 Windows 上)
或者,如果您不想pre-commit在遷移模式下使用,請運行pre-commit install --force
您還使用了pre-commit可能導致您的問題的過時版本 - 所以我建議升級它很好
免責宣告:我創建了預提交
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/441197.html
