我们在存储库中使用gpg签名提交,但是当我尝试在vscode中提交更改时出现此错误:
gpg: cannot open tty `/dev/tty': No such device or address
error: gpg failed to sign the data
如果我这样做" git commit"在vscode的终端都可以。所以问题不在于git / gpg / gpg-agent我猜。有没有办法让vscode处理这个?
答案 0 :(得分:13)
最近合并了pull request,并将在下一版VS Code(2017年8月/ 1.16)中提供。或者,它已经在内部人员构建中可用。
可用时,可以通过将以下内容添加到用户或工作区设置(文件>首选项>设置)来启用它
git.enableCommitSigning: true
先决条件:使用git设置签名提交。说明可以在这里找到 - https://help.github.com/articles/signing-commits-using-gpg/
在Git中默认设置存储库的所有提交 版本2.0.0及更高版本,运行git config commit.gpgsign true。设置 您计算机上任何本地存储库中的所有提交都要进行签名 默认情况下,运行git config --global commit.gpgsign true。
存储您的GPG密钥密码,这样您就不必每次都输入密码 在签署提交时,我们建议使用以下工具:
对于Mac用户,GPG Suite允许您存储GPG密钥 Mac OS Keychain中的密码。对于Windows用户,Gpg4win 与其他Windows工具集成。您也可以手动配置 gpg-agent保存您的GPG密钥密码,但这不会集成 使用Mac OS Keychain,如ssh-agent,需要更多设置。
答案 1 :(得分:0)
我遇到同样的问题。
我现在不能解决这个问题。
但是我知道Vscode需要在执行GPG_TTY=$(tty)
之前执行导出git commit
如果可以将GPG_TTY=$(tty)
添加到vscode调用的终端的配置文件(如.bashrc)中,则将解决此问题。
更多内容请参见:https://gist.github.com/repodevs/a18c7bb42b2ab293155aca889d447f1b