如何在VS代码中使用git提交签名?

时间:2017-08-17 09:03:29

标签: visual-studio-code

我们在存储库中使用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处理这个?

2 个答案:

答案 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)

我遇到同样的问题。

enter image description here

我现在不能解决这个问题。

但是我知道Vscode需要在执行GPG_TTY=$(tty)之前执行导出git commit

如果可以将GPG_TTY=$(tty)添加到vscode调用的终端的配置文件(如.bashrc)中,则将解决此问题。

更多内容请参见:https://gist.github.com/repodevs/a18c7bb42b2ab293155aca889d447f1b