我正在设置一个新的开发环境,从表面上看,它与我在另一台计算机上的环境相同:
使用终端,我进行了一组新的更改,然后输入:
git commit -S -m "My commit message here"
返回此短信:
the input device is not a TTY
检查
git status
显示分阶段更改仍未提交。
我已经尝试过:
-m
和消息,希望git能打开vim-S
开关--dry-run
core.terminal
设置配置为 vi
(我相信这是默认设置,但是嘿,你永远不知道)当我用 Google 搜索该消息时,几乎所有结果都与 Docker shell 相关,并且似乎无关(大多数答案涉及从
-it
命令中删除或更改 docker exec
开关)。我确实运行了 Docker,但 git 命令没有在 Docker 实例中运行。
同样,我在另一台具有看似相同设置的计算机上没有遇到此问题。
我找出了原因,并找到了解决方法,但没有真正解决它;请参阅下面我自己的答案。
再次强调,这不是一个解决方案,因为 linting 的存在显然是有原因的,但我能够推进我的更改,完成任务,并将错误处理推迟到另一天。问题仍然悬而未决。
这不是错误原因的解决方案,而是一种允许我继续工作的解决方法。
我的机器上配置了 git,并带有一个运行 GrumPHP 的预处理器来检查我的代码; GrumPHP 抛出 TTY 错误。我能够禁用它以进行提交,但 GrumPHP 的问题仍然存在。
对于任何遇到类似问题并通过 Google 搜索到这里的人来说,如果您在提交流程中配置了预处理,则脚本将位于项目的
.git/hooks/
文件夹中。就我而言,我编辑了 .git/hooks/pre-commit
和 /.git/hooks/commit-msg
,并简单地注释掉了 GrumPHP 脚本。