4

我的问题是关于执行 gpg 密钥和密码短语缓存的gpg-agent命令。

我想知道如何使用它,这样我就可以在脚本中运行多个git tag -s命令,而不必每次都输入我的 gpg 密码。

我的脚本的初始版本是这样的:

git 分支 -r | grep 起源 | grep 模式 |同时读取分支;做标签= basename $BRANCH; git tag -s -m "tag $TAG 发布" "$TAG" "$BRANCH"; 完毕;

我有两个用例:

  1. 我有大约 20 个要转换为标签的发布分支。
  2. 我有大约 40 个发布标签,我想重做以遵循新的命名约定。

我正在寻找要运行gpg-agent的命令行,然后是我需要运行的 gpg 命令来缓存我的密码短语,以便在我执行git tag -s时可以使用它

4

1 回答 1

2

这可以通过gpg-agent在运行脚本之前运行来完成。例如:

$ eval $( gpg-agent --daemon )
$ for branch in $( git branch -r | grep PATTERN ); do
>   tag="$( basename $BRANCH )"
>   git tag -sm "tag $tag release" "$tag" "$branch"
> done

系统会提示您输入第一次签名的密码(除非在第一次签名之前已经使用了 gpg-agent)。如果使用上述方法,请务必在完成后杀死代理(例如pkill gpg-agent)。

可以在此处找到有关运行代理的更多信息:http ://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html

于 2012-04-21T21:25:24.427 回答