Github推送报错unknown shorthand flag: 't' in -t 如何定位问题来源
报错来源
该unknown shorthand flag: 't' in -t不属于git push的原生报错,是推送流程触发的本地pre-push钩子执行时抛出的。三类客户端推送均报错的表现也可以验证该结论:所有标准git客户端执行推送操作前,都会默认调用当前仓库配置的pre-push钩子脚本,和客户端本身无关。
-t参数的可能位置
按优先级依次排查即可定位:
- 首先检查本地仓库的原生钩子文件:打开
.git/hooks/pre-push文件,逐行核对所有执行命令,是否存在误写的-t参数,尤其注意docker、docker-compose相关语句。 - 如果你项目接入了husky、lefthook这类钩子管理工具,额外检查项目根目录下的钩子配置(如
.husky/pre-push、lefthook.yml),看推送前置校验步骤里的命令是否携带错误的-t参数。 - 执行
git config --list | grep push检查git配置,确认没有给push命令设置异常别名、默认参数,git原生push指令没有-t参数,若存在类似push = push -t的配置会直接触发该报错。 - 你提到的
docker-compose exec -T laravel.test php artisan test是适配非交互式环境的正确写法,如果钩子中调用该命令时误把-T写为-t、或是漏加-T,docker-compose在无TTY的钩子运行环境下执行就会抛出参数错误。
内容的提问来源于stack exchange,提问作者Michał
相关产品推荐
相关产品推荐

