如何配置Git以自动对所有标签进行签名?
让Git自动签名所有标签的解决方案
我太懂这种忘加-s参数、或者用GUI不小心创建未签名标签的烦恼了!你之前的配置其实差了关键一环,咱们调整一下就能实现“不管用CLI还是GUI,创建的标签全自动签名”的效果:
问题根源
你之前设置的tag.forceSignAnnotated = true只对带注释的标签生效,但Git默认创建的是「轻量标签」(比如直接敲git tag v1.0生成的那种),这个配置管不到轻量标签;而你加的alias tag = tag -s只能覆盖CLI的命令,GUI工具根本不会用这个别名,所以才会失效。
正确的配置方案
把你的.gitconfig更新成下面这样:
[tag] annotate = true forceSignAnnotated = true [commit] gpgsign = true
每个配置的作用
tag.annotate = true:强制Git默认创建带注释的标签,替代原来的轻量标签。也就是说,以后你敲git tag v1.0,等价于手动敲git tag -a v1.0tag.forceSignAnnotated = true:让所有带注释的标签必须自动签名,不管你有没有加-s参数,完美解决忘加参数的问题commit.gpgsign = true:这个是让提交自动签名,和标签无关,你可以保留也可以根据需求去掉
对GUI工具的支持
绝大多数主流Git GUI工具(比如GitKraken、SourceTree、GitHub Desktop)都会读取你的.gitconfig配置,所以更新完配置后,用GUI创建标签时,工具会自动走「带注释+签名」的流程,不会再生成未签名标签了。
如果偶尔需要创建轻量标签(虽然你的仓库要求签名,应该用不到),可以手动加--no-annotate参数绕过配置:git tag --no-annotate v1.0
内容的提问来源于stack exchange,提问作者sorin
相关产品推荐
相关产品推荐

