【问题标题】:How to I configure git to always sign tags?如何配置 git 以始终​​签署标签?
【发布时间】:2018-06-01 15:38:56
【问题描述】:

我使用的一些存储库需要对所有标签进行签名,有时我忘记将 -s 添加到 git tag,或者更糟糕的是,我使用不知道标签的 git GUI 创建标签。

有没有办法将 GIT 配置为始终对标签进行签名?

我提到我尝试将以下 hack(s) 添加到 .gitconfig 但它没有任何效果,标签是在没有签名的情况下创建的,除非我在 cli 上手动提到 -s。

[alias]
tag = tag -s

[tag]
forceSignAnnotated = true

[commit]
gpgsign = true

【问题讨论】:

  • 也许这是配置中[tag] 下的一个选项,比如[commit]
  • 在 git 中有 hubflow 选项,您可以在其中创建标签,并且在您完成分支后自动创建标签
  • 请确保也将user.signingkey 添加到您的 git 配置(gpg 密钥 ID)中。例如。 git config --global user.signingkey 0A1B2C3D.
  • alias.tag 无法工作,因为隐藏现有 Git 命令的别名被忽略。
  • 使用 Git 2.23(2019 年第三季度),查看git config tag.gpgSign true

标签: git git-config git-tag


【解决方案1】:

Git 2.23 更新(2019 年第三季度),you now have git config tag.gpgSign true!


原始答案(2018 年 6 月)

虽然 git 标签没有“默认签名”模式,the documentation mentions:

一旦你有一个私钥可以用来签名,你可以通过设置 user.signingkey 配置设置来配置 Git 使用它来签名。

git config --global user.signingkey 0A46826A

默认情况下,默认签名模式下的git tag (-s) 将使用您的提交者身份(Your Name <your@email.address> 形式)来查找密钥。
如果要使用不同的默认密钥,可以在存储库配置中指定,如下所示:

[user]
    signingKey = <gpg-keyid>

注意:如果您使用 -m 选项 (tag -m "a comment" myTag) 创建您的标签,这会使它们被注释

来自git tag man page

如果给出了-m &lt;msg&gt;-F &lt;file&gt;-a-s-u &lt;keyid&gt; 不存在,则隐含-a

所以你可以:

  • not 为 git 标签定义别名(不是add -s
  • 从终端设置git config tag.forceSignAnnotated true

这样,任何git tag -m "a comment" myTag 都会触发 gpgpSign。
仅适用于带注释的标签,但由于those are ones which are supposed to be not just local to your repo but also pushed,这应该足够了。

【讨论】:

    【解决方案2】:
    [alias]
    tag = tag -s
    

    您不能使用别名覆盖内置命令。使用不同的 别名的名称:

    [alias]
    stag = tag -s
    

    至于

    [tag]
    forceSignAnnotated = true
    

    这会强制带注释的标签被签名,但你必须创建 带有git tag -a 的注释标签并不比git tag -s 好多少。

    【讨论】:

      【解决方案3】:

      我不知道 alias 指令,但是您的 [tag] 和 [commit] 似乎是正确的,并且它们对我有用。只需确保(如 Bjoern Rennhak)说 user.signingkey 也已定义并使用有效密钥。还要检查您的 git 版本,因为“forceSignAnnotated”仅在 Git 版本 2.9.0 中可用。

      【讨论】:

        猜你喜欢
        • 2016-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-02
        • 1970-01-01
        相关资源
        最近更新 更多