要求朋友。
方案
机密信息已被意外推送到公共github存储库。一旦提交者注意到失败,他就决定用push -f
覆盖git历史记录以从网上删除信息。
问题
仍然可以通过github上的git reflog
访问机密信息。所以github的工作人员仍然可以访问这些信息。
更糟糕的是,如果提交者在初始提交消息中添加了引用,例如使用#-sign引用一个问题,github会自动将提交的链接放入该问题。在这种情况下,仍然可以通过github前端访问被覆盖的信息。
问题
答案 0 :(得分:2)
只要普通 Git ,不可能。
但另一方面,"遥控"存储库 - 每个人都推动的 并且来自 - "裸",并且初始化裸存储库 默认情况下禁用reflog 。
至于Github ,这完全是另一个故事,因为他们没有 使用" plain"服务于存储库。 Git,因此服务器端 存储库的管理实际上超出了Git领域 - 请参阅what the Github docu says:
'一旦你将提交推送到GitHub,你应该考虑它所包含的任何数据被泄露。'
1)使用any of the available tools重写历史记录;
2)强制推送结果以覆盖已存在的内容。
3)联系Github寻求进一步的帮助。如果这发生在您的$ dayjob,这应该是官方联系人。在此之前,无论谁联系Github都应该read their "terms and conditions"。在联系时,应该礼貌地询问可能产生的影响是什么,以及是否可以使用除回购之外的其他方式(已经修复)来防止可能传播受损信息。我的意思是,比如repo replicas或者备份或Github内部的东西