公众可以查看以前的GitHub推送内容吗?

问题描述

说我不小心将包含信用卡号的文件中的代码推送到可公开查看的github存储库中(这实际上没有发生)。 说我很快意识到了这一点,然后将更新推送到公共仓库。公众是否可以查看我推送的文件的先前版本并查看信用卡号? 还是公众只看到提交历史和日期,而不看到所做的更改?

解决方法

是的,有。知道被推送的blob,commit或tree的任何人都可以访问旧文件,因为GitHub通常不会垃圾收集数据(尽管不能保证它们会或不会)。即使您重写历史记录以从所有分支和标签中删除该秘密,旧对象几乎肯定仍会存在并且可以访问。

从字面上看,您推送到公共存储库的任何秘密都会在您第二次泄露时受到损害;有些机器人会从字面上梳理存储库,以利用秘密。如果您推送了信用卡号,则需要将其泄露给相应的当事方;如果您按下了密码或令牌,则将其撤消并创建一个新密码。

GitHub具有instructions on how to remove sensitive data,但其中涉及与GitHub支持联系以删除旧对象。即使遵循该过程,也必须假设一旦提交给公共存储库的每个机密都是众所周知的。

,

如果您进行新的提交删除了信用卡号,是的,每个人都可以看到其中包含信用卡号的旧提交。

如果您例如使用git commit --amend或交互式rebase和git push --force-with-lease“重写”(实际替换)提交,则不会,除非有其他引用,否则旧历史将不会公开显示。旧的提交,例如标签或其他分支,或对Github上的提交的引用。它仍将存在于您的本地存储库follow these instructions to get rid of it中。

有关更多信息,请参见Rewriting History in Pro Git

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...