我使用的存储库很少需要对所有标记进行签名,有时我忘记将-s
添加到git tag
,更糟糕的是,我使用不知道标记的git GUI创建标记
有没有办法将GIT配置为始终对标签进行签名?
我提到我尝试将以下hack(s)添加到.gitconfig
但它没有任何效果,标签是在没有签名的情况下创建的,除非我在cli上手动提到了-s。
[alias]
tag = tag -s
[tag]
forceSignAnnotated = true
[commit]
gpgsign = true
答案 0 :(得分:6)
虽然git tag没有“默认签名”模式,the documentation mentions:
一旦你有一个私钥可以签名,你可以配置Git,通过设置user.signingkey配置设置来使用它来签名。
git config --global user.signingkey 0A46826A
默认情况下,{ - 1}}在默认签名模式(
git tag
)下将使用您的提交者身份(-s
形式)来查找密钥。
如果要使用其他默认密钥,可以在存储库配置中指定它,如下所示:
Your Name <your@email.address>
注意:如果您使用[user]
signingKey = <gpg-keyid>
选项(-m
)创建代码,则会对其进行注释。
如果提供
tag -m "a comment" myTag
或-m <msg>
并且-F <file>
,-a
和-s
不存在,则隐含-u <keyid>
。
所以你可以:
-a
)add -s
这样,任何git config tag.forceSignAnnotated true
都会触发gpgpSign
仅适用于带注释的标签,但由于those are ones which are supposed to be not just local to your repo but also pushed,这应该足够了。
答案 1 :(得分:1)
has_many :comments, serializer: CommentSerializer
您无法使用别名覆盖内置命令。使用不同的 别名的名称:
[alias]
tag = tag -s
至于
[alias]
stag = tag -s
这会强制签署带注释的标记,但您必须创建
带有[tag]
forceSignAnnotated = true
的带注释标签,与git tag -a
相比要好得多。
答案 2 :(得分:0)
我不知道别名指令,但是您的[tag]和[commit]似乎正确,并且这些对我有用。只需确保(如Bjoern Rennhak)说过,user.signingkey也已定义并使用有效密钥。另外,请检查您的git版本,因为“ forceSignAnnotated”仅在Git版本2.9.0起才可用。