从 pushed/merged 提交中删除 GPG 签名?
Remove a GPG signature from a pushed/merged commit?
我正在做一个私人项目,我不想暴露我的身份,但很快我发现我的 Git 刚刚用我的个人 GPG 密钥签署了提交,它可以很容易地暴露我的身份。
更糟糕的是,它已经被推送到远程,而且它在一个已经被合并的pull request中。
有什么方法可以重新编辑提交以从中删除签名吗?
您不能更改您所做的提交。
你可以做一个新的提交,这在其他方面与“坏”提交完全相同,但省略了你想要省略的任何信息(GPG签名或密钥或其他任何东西,在这个案件)。这是一个 不同的提交 但你可以使用 git push --force
或类似的来告诉 GitHub 是的,我的意思是放弃原始提交以支持这个新的和改进的提交.
如果您有适当的权限,GitHub 实际上会切换分支以使用新的提交。这里的一个大问题——好吧,两个大问题,复数——is/are:
您使该提交可用。谁知道从那以后复制了多少?
当GitHub切换到新的和改进的提交时,他们不会立即丢弃旧的和糟糕的提交。他们将 最终 扔掉它,但在那之前,任何能找到它的哈希 ID 的人都将能够从 GitHub.
检索提交
您可以联系 GitHub 支持,让他们尽快进行提交丢弃,但这不能解决第一个要点。 (“合并”表明您甚至可能没有执行 git push --force
的许可;如果是这样,您将需要得到那些有许可的人的合作。)
我正在做一个私人项目,我不想暴露我的身份,但很快我发现我的 Git 刚刚用我的个人 GPG 密钥签署了提交,它可以很容易地暴露我的身份。
更糟糕的是,它已经被推送到远程,而且它在一个已经被合并的pull request中。
有什么方法可以重新编辑提交以从中删除签名吗?
您不能更改您所做的提交。
你可以做一个新的提交,这在其他方面与“坏”提交完全相同,但省略了你想要省略的任何信息(GPG签名或密钥或其他任何东西,在这个案件)。这是一个 不同的提交 但你可以使用 git push --force
或类似的来告诉 GitHub 是的,我的意思是放弃原始提交以支持这个新的和改进的提交.
如果您有适当的权限,GitHub 实际上会切换分支以使用新的提交。这里的一个大问题——好吧,两个大问题,复数——is/are:
您使该提交可用。谁知道从那以后复制了多少?
当GitHub切换到新的和改进的提交时,他们不会立即丢弃旧的和糟糕的提交。他们将 最终 扔掉它,但在那之前,任何能找到它的哈希 ID 的人都将能够从 GitHub.
检索提交
您可以联系 GitHub 支持,让他们尽快进行提交丢弃,但这不能解决第一个要点。 (“合并”表明您甚至可能没有执行 git push --force
的许可;如果是这样,您将需要得到那些有许可的人的合作。)