在谈到Git时,我有点像新秀.所以我决定阅读Scott Chacon的Pro Git.BTW好书,强烈推荐它.
无论如何得到了关于签名标签的部分.要使用GPG对标签进行签名,您必须设置私钥.但是,当我跑:
git tag -s v1.6 -m "my signed 1.6 tag"
Run Code Online (Sandbox Code Playgroud)
我得到以下内容:
C:\Users\Name\Desktop\git>git tag -s v1.6 -m "my signed 1.6 tag"
gpg: error loading `iconv.dll': The specified module could not be found.
gpg: please see http://www.gnupg.org/download/iconv.html for more information
gpg: skipped "Name <name@gmail.com>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
error: unable to sign the tag
Run Code Online (Sandbox Code Playgroud)
所以,我完成了错误消息告诉我要做的事情,然后转到链接并按照说明进行操作.我将iconv.dll复制到包含gpg.exe(\ Git\bin)的文件夹中.再次执行命令并得到:
C:\Users\Name\Desktop\git>git tag -s v1.6 -m "my signed 1.6 tag"
gpg: skipped "Name <name@gmail.com>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
error: unable to sign the tag
Run Code Online (Sandbox Code Playgroud)
编辑:
当我尝试列出我的密钥时,我收到此错误???
Name@NAME-PC ~
$ gpg --list-secret-keys
gpg: keyblock resource `c:/Users/Name/.gnupg\secring.gpg': file open error
gpg: keyblock resource `c:/Users/Name/.gnupg\pubring.gpg': file open error
gpg: fatal: c:/Users/Name/.gnupg: directory does not exist!
secmem usage: 0/0 bytes in 0/0 blocks of pool 0/32768
Run Code Online (Sandbox Code Playgroud)
您可以使用像gpg4win这样的gpg GUI初始化您的gnupg环境(密钥),遵循本教程,或者(更新)官方gpg4win文档" Gpg4win for Novices ".

请注意,此博客文章添加了以下警告:
我安装了Gpg4win,它安装了一个很好的GUI来管理密钥和GPG命令行界面.
由于我反复尝试使用GUI(GNU Privacy Assistant - 密钥管理器)来创建我的密钥,因此我对该过程的无知很清楚.该GUI似乎创建了有效的密钥,但是它存储相关的密钥部分文件的位置不是GPG命令行期望找到它们的位置.
(注意:可能在C:\Users\Name\AppData\Roaming\gnupg,目录被命名gnupg而不是.gnupg)
相反,请务必使用命令行客户端.从...开始:
gpg --gen-key
Run Code Online (Sandbox Code Playgroud)
如果密钥创建失败,您可能需要手动创建目录
c:users<USER>.gnupg,GPG显然不会自己创建目录.
cd C:\Users\Name
mkdir .gnupg
xcopy C:\Users\Name\AppData\Roaming\gnupg .gnupg
Run Code Online (Sandbox Code Playgroud)
我沿途看到的错误是
gpg: no writable public keyring found
Run Code Online (Sandbox Code Playgroud)
和:
signing failed: secret key not available
Run Code Online (Sandbox Code Playgroud)
注意:一旦你的gnupg到位,如果你仍然有错误信息,请在签名时添加key-id你想要使用的(gnupg):
git tag -u 'key-id' -s -m "some comment" some-tag
Run Code Online (Sandbox Code Playgroud)