当我想压缩一些通过交互式rebase提交的
git rebase -i HEAD~3然后:
pick cbd03e3 Final commit (signed)
s f522f5d bla-bla-bla (signed)
s 09a7b7c bla-bla (signed)
# Rebase c2e142e..09a7b7c onto c2e142e
...尽管所有这些提交都具有相同的签名,但最终提交仍然没有gpg-签名。是否有可能在交互式重基压缩后保留提交gpg签名?
发布于 2015-03-25 18:18:15
正如Cup蛋糕所述,您不能从未压缩提交中保留旧签名,但如果您像这样重基,则可以签署新的压缩提交:
git rebase --interactive --gpg-sign=myemail@example.com HEAD~4
添加--gpg-sign=myemail@example.com作为参数将对最终压缩提交进行签名。
发布于 2013-09-18 14:42:08
你这样做是没有道理的。gpg签名的全部目的是验证代码没有被篡改。如果你能在修改历史记录后保留签名,那就会使整个目的落空。
我目前没有用gpg对我的Git代码进行签名,所以我不知道确切的细节,但我猜它可能会散列树的最终提交对象。当您像在您的示例中那样重基时,Final commit将有一个不同的sha1 ID,因此它与重基之前的对象不同,因此可能不可能拥有相同的gpg签名,而且正如我所说的,这是没有意义的。
发布于 2021-04-27 07:37:06
一个选项是将commit.gpgSign设置设置为true。这将始终对提交进行签名,包括重基提交。
在回购中在本地进行:
git config commit.gpgSign true要在全球范围内这样做:
git config --global commit.gpgSign truehttps://stackoverflow.com/questions/18874281
复制相似问题