【问题标题】:Can public view the content of previous GitHub pushes?公众可以查看之前 GitHub 推送的内容吗?
【发布时间】:2021-01-31 12:25:01
【问题描述】:

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

【问题讨论】:

标签: git github push commit


【解决方案1】:

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

从字面上看,您推送到公共存储库的任何秘密都会在您推送它的那一刻受到损害;有些机器人会从字面上梳理存储库以供秘密利用。如果您推送了信用卡号,则需要向相关方报告已泄露;如果您推送了密码或令牌,请将其撤消并创建一个新的。

GitHub 有 instructions on how to remove sensitive data,但需要联系 GitHub 支持以删除旧对象。即使您遵循该程序,您也必须假设提交到公共存储库的每个秘密在推送后都是众所周知的。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-24
      • 1970-01-01
      • 2012-10-03
      • 2013-01-15
      • 2014-12-28
      • 2019-01-04
      • 1970-01-01
      相关资源
      最近更新 更多