如何使用gpg-agent批量签名git标签

时间:2012-03-15 03:56:55

标签: git gnupg git-tag

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

我想知道如何使用它,以便我可以在脚本中运行多个 git tag -s 命令,而无需每次都输入我的gpg密码短语。

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

  

git branch -r | grep起源| grep模式|同时读取BRANCH;做TAG = basename $BRANCH; git tag -s -m“tag $ TAG release”“$ TAG”“$ BRANCH”;完成的;

我有两个用例:

  1. 我有大约20个我想要转换为标签的发布分支。
  2. 我有大约40个发布标记,我想重做以遵循新的命名约定。
  3. 我正在寻找运行 gpg-agent 的命令行,然后运行gpg命令以运行我的密码缓存,以便在我执行时可以使用git tag -s

1 个答案:

答案 0 :(得分: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