git - 从推送/合并提交中删除 GPG 签名?
问题描述
我正在处理一个我不想暴露我的身份的私人项目,但很快我发现我的 Git 只是用我的个人 GPG 密钥签署了提交,它可以很容易地暴露我的身份。
更糟糕的是它已被推送到远程,并且它在已合并的拉取请求中。
有什么方法可以重新编辑提交以从中删除签名?
解决方案
您无法更改您所做的提交。
您可以进行新的提交,否则它与“错误”提交完全相同,但会省略您想要省略的任何信息(在这种情况下是 GPG 签名或密钥或其他任何信息)。这是一个不同的提交,但您可以使用git push --force
或类似的方式告诉 GitHub是的,我的意思是放弃原始提交,转而支持这个新的和改进的提交。
如果你有适当的权限,GitHub 实际上会切换分支以使用新的提交。这里的一个大问题——嗯,两个大问题,复数——是/是:
您使该提交可用。谁知道从那时起已经制作了多少份?
当 GitHub 切换到新的和改进的提交时,他们不会立即丢弃旧的和糟糕的提交。他们最终会扔掉它,但在那之前,任何能找到它的哈希 ID 的人都可以从 GitHub 检索提交。
您可以联系 GitHub 支持,让他们尽快完成提交丢弃,但这并不能解决第一个要点。(“合并”的事情表明您甚至可能没有权限执行git push --force
; 如果是这样,您将需要获得那些有权限的人的合作。)
推荐阅读
- gstreamer - 通过 Gstreamer 将 VNC 转换为 RTSP
- html - SVG路径删除交点
- javascript - 如何将 Selenium 鼠标移动到精确的 X、Y 而不告诉必须使用 Javascript/Typescript 单击哪个元素?
- javascript - 将数量减少到 0 时删除确认对话框(Prestashop 1.7)
- amazon-web-services - SCP 没有这样的文件或目录
- python - 部署一个基本的 python sanic webserver
- google-api-nodejs-client - 如何在多工作人员环境中获取和使用访问令牌?
- c++ - 我的 IDE 或代码有问题吗?
- neo4j - Neo4J - 根据某些不存在的属性获取过滤结果
- python - 如何根据多个条件用字符串拆分 Pandas 数据框列