使用GPG签署现有提交

时间:2016-06-09 22:17:24

标签: git github

我正在寻找一种方法来复制git commit -S但在特定提交时所做的事情,例如通过提供SHA。

有可能吗?

2 个答案:

答案 0 :(得分:1)

签署提交将更改提交元数据,从而更改基础SHA1提交ID。您可能知道,对于Git来说,这与尝试更改历史记录内容的结果相同。

如果您想重新签署上次提交,可以运行:

git commit -S --amend

如果你想在你的历史中间重新签署提交,你可以做几件事,如果你问我,所有这些都有点讨厌:

  1. 您可以reset --soft加入要签名的提交。运行git commit -S --amend,然后提交所有分阶段的更改。这将合并将提交后的所有历史记录合并为一次提交
  2. 分支(为安全起见)和reset --hard分支到您要签名的提交。对其进行签名,如果您想坚持提交历史记录,现在可以git cherry-pick NEXTCOMMIT -S重新构建整个签名历史记录。

答案 1 :(得分:0)

如果你想对分支上的所有现有提交进行签名而不对它们进行任何更改:

git rebase --exec 'git commit --amend --no-edit -n -S' -i origin/HEAD