更新:

更新:

Git 现在具有使用 签署提交的功能git commit -S,这很好,但有时我会忘记将标志添加到commit,有时我会将使用 申请的补丁邮寄给自己am,而该命令没有用于签署的标志。

有没有办法为已记录的提交添加签名?

答案1

  1. 进入交互式变基模式。
  2. 在您要签名的每个提交后添加以下行

    exec git commit --amend --no-edit -S

这将在选择每次提交后运行此命令。

更新:

更简单的方法是:

git rebase --exec 'git commit --amend --no-edit -n -S' -i development

这将重新设定开发之前的所有内容(或任何哈希),并且您不必在每次提交后复制粘贴。

答案2

签署提交会改变其内容,因此依赖于它的较新的提交将改变其哈希值。

如果您只想签署最近的提交,git commit -S --amend那就可以了。

答案3

我使用git rebase -i --root(参见改写历史) 并更改pickedit

然后我用git commit -S --amend --no-edit && git rebase --continue (在 Windows 上)每次提交。

这是对每个提交手动签名。我希望我们能找到更好的解决方案。

答案4

如果您只想过滤特定的提交并仅对它们进行签名,则可以使用filter-branch

git filter-branch --commit-filter 'if [ "$GIT_COMMITTER_EMAIL" = "[email protected]" ];
  then git commit-tree -S "$@";
  else git commit-tree "$@";
  fi' HEAD

如果由于某种原因您只想签署自己的提交,这将很有用。

相关内容