Git - 是否可以修改/删除远程git存储库的reflog,例如在Github上?

时间:2017-12-12 10:48:06

标签: git github

要求朋友。

方案

机密信息已被意外推送到公共github存储库。一旦提交者注意到失败,他就决定用push -f覆盖git历史记录以从网上删除信息。

问题

  • 仍然可以通过github上的git reflog访问机密信息。所以github的工作人员仍然可以访问这些信息。

  • 更糟糕的是,如果提交者在初始提交消息中添加了引用,例如使用#-sign引用一个问题,github会自动将提交的链接放入该问题。在这种情况下,仍然可以通过github前端访问被覆盖的信息。

问题

  • 是否可以修改/删除远程git或github存储库的reflog?
  • 如果不可能的话。在给定的场景中你会做什么?通过对第一次提交的引用来删除问题?删除整个存储库?还有吗?

1 个答案:

答案 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内部的东西