不知道你遇没遇到过,几个月内我遇到过两次了,记之。

【错误详情】

在提交代码时,报以下错误:

shell error: gpg failed to sign the data fatal: failed to write commit object error: could not commit staged changes.

或者

html error: gpg failed to sign the data: [GNUPG:] KEY_CONSIDERED 7037C263402DC726F76CCFEA2039AF6CB6A4FC65 2 [GNUPG:] BEGIN_SIGNING H10 [GNUPG:] PINENTRY_LAUNCHED 39545 curses 1.2.1 - xterm-256color - - 502/20 0 gpg: signing failed: Inappropriate ioctl for device [GNUPG:] FAILURE sign 83918950 gpg: signing failed: Inappropriate ioctl for device

在 Mac 上,GPG 代理似乎不是很稳定,感觉有什么其他的程序会不时杀死 GPG 代理,导致了这个问题。

【解决办法】

执行以下命令后,重试 git 提交即可:

shell export GPG_TTY=$(tty)

两次遇到这个问题,两次使用这个方法,屡试不爽。

【tty 详情】

echo 一下可以看到如下信息

shell echo $(tty) /dev/ttys014

【温馨提示】

GPG 的密码还是记住的,不然,签署时仍然会碰到问题。因为执行了以上命令后,相当于重启了 GPG 代理,它会向你询问密码。

1694591359405 448b85c7 dcca 4346 84f7 d249806314cd