如何签署 Git 笔记?

问题描述 投票:0回答:1

Git 注释 是向 Git 对象添加元信息的功能。请参阅这篇 Stackoverflow 文章 了解更多详细信息。与提交类似,我也想签署笔记。

我的本地 Git 配置为对所有提交进行签名。虽然签署 Git 提交按预期工作,但 Git 注释仍然未签名。在我的本地 Git 配置中,我有以下内容:

# excerpt from ~/.gitconfig
[commit]
    gpgsign = true

为了签署笔记,我尝试了以下方法。

# Create example repo
git init repo
cd repo
date >> DATE && git add DATE && git commit -m "update date"

# Commit has been signed (OK)
git show $( git rev-parse HEAD ) --show-signature

git notes add -m "Example note"

# Commit has a note now (OK)
git show $( git rev-parse HEAD ) --show-signature

# Note has not been signed (fail)
git log -p notes/commits --show-signature

如何实现 Git 注释也被签名?

git security
1个回答
0
投票

在紧要关头,您可以手动将笔记签名为 PGP 清除签名文档

您可以创建一个清晰签名的注释作为

$ echo "My note" | gpg2 -ao- --clearsign  | git notes add -F-

看起来像这样

$ git notes show
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

My note
-----BEGIN PGP SIGNATURE-----

iHUAARYIAB0WIQRV1AjJ09Fu2Xnxkhi7mQ+45Dv2eQUCZTRkw7AKCRC7mQ+45Dv2
eQUfAPwKhEDkoOGWqTvM1gZG6k1fMtTXRN4/ju+qG2X6rlAx54D/TNsHI2kzETqB
Pa6/9YKoJfH/JulcVNAvGuylOOrabww=
=U8vT

然后您可以使用 gpg 验证签名为

$ git notes show | gpg2 --verify
gpg: Signature made Sat 21 Oct 2023 07:54:40 PM EDT
gpg:                using EDDSA key ABCDEFABCDEFABCDEFABCDEFABCDEFABCDEFABCD
gpg: Good signature from "Foo Bar <[email protected]>" [ultimate]
© www.soinside.com 2019 - 2024. All rights reserved.