首页 > 解决方案 > 从推送/合并提交中删除 GPG 签名?

问题描述

我正在处理一个我不想暴露我的身份的私人项目,但很快我发现我的 Git 只是用我的个人 GPG 密钥签署了提交,它可以很容易地暴露我的身份。

更糟糕的是它已被推送到远程,并且它在已合并的拉取请求中。

有什么方法可以重新编辑提交以从中删除签名?

在此处输入图像描述

标签: gitgithubgit-commitgnupg

解决方案


无法更改您所做的提交。

可以进行新的提交,否则它与“错误”提交完全相同,但会省略您想要省略的任何信息(在这种情况下是 GPG 签名或密钥或其他任何信息)。这是一个不同的提交,但您可以使用git push --force或类似的方式告诉 GitHub是的,我的意思是放弃原始提交,转而支持这个新的和改进的提交

如果你有适当的权限,GitHub 实际上会切换分支以使用新的提交。这里的一个大问题——嗯,两个大问题,复数——是/是:

  • 您使该提交可用。谁知道从那时起已经制作了多少份?

  • 当 GitHub 切换到新的和改进的提交时,他们不会立即丢弃旧的和糟糕的提交。他们最终会扔掉它,但在那之前,任何能找到它的哈希 ID 的人都可以从 GitHub 检索提交。

您可以联系 GitHub 支持,让他们尽快完成提交丢弃,但这并不能解决第一个要点。(“合并”的事情表明您甚至可能没有权限执行git push --force; 如果是这样,您将需要获得那些有权限的人的合作。)


推荐阅读