【发布时间】:2019-05-18 09:42:15
【问题描述】:
为了从 GitHub 存储库中删除提交,典型的建议是在本地删除提交(例如,通过 git rebase -i)和 force-push the modified branch over the original remote branch。
但是,如果有问题的远程分支是拉取请求的一部分,GitHub 现在会帮助显示消息
<user>将<remote_branch>分支从<old-commit>强制推送到<new-commit>
并显示一个链接以查看<old-commit> 和<new-commit> 之间的差异。 (这似乎是最近的变化,我不记得以前遇到过这个消息。)
根据another answer here,GitHub 应定期删除不再引用的提交。但由于他们确实在他们的 UI 中引用了旧的提交,我怀疑他们会保留它。 (我没有看到这个明显的新功能足够长的时间来确定并且还没有找到任何官方提及它。)
是否可以以阻止其他用户看到该提交的方式删除远程提交?或者至少可以从 PR 讨论页面中删除上面的消息? 是否有任何其他方法可以更改 PR 底层分支的内容,而每个人都无法从 PR 页面访问旧提交(至少除非他们知道提交哈希)?
(此问题与删除密码等敏感信息无关 - 我知道,无论之后是否有可能删除提交,这些信息都应被视为已泄露。)
【问题讨论】:
-
我怀疑这是不可能的。这几乎就像您希望远程存储库运行一个自动管理的
git gc。此外,我认为您无法访问遥控器的gitconfig。 stackoverflow.com/questions/4212008/… 中的答案有一些见解。 -
@miqh @phd 感谢您提供这些答案的指针。我读过的大部分内容似乎不适用于这种特定情况,因为我没有看到任何解决 GitHub 在 PR 讨论日志中突出宣布向世界推送力量这一事实(并且考虑到它们链接到那里的旧提交,我相信他们很可能不会认为它是垃圾,并且不会使用
git gc或类似的等效项来删除它)。我想最适用的建议是“联系 GitHub 支持”,但这可能只是极少数情况下的解决方案。 -
自 2018 年起,有一个用于删除问题的测试版功能,但它不适用于 PR。 help.github.com/articles/deleting-an-issue我鼓励您联系 GH 支持。