从GitHub历史记录中删除了敏感文件,但我仍然可以访问它

从GitHub历史记录中删除了敏感文件,但我仍然可以访问它,git,github,Git,Github,我无意中提交了一个包含敏感数据的文件,并希望将其从当前GitHub repo状态和整个历史中删除。为了确保该过程完成,我在浏览器中打开了一个新选项卡,URL指向存储库历史记录中该文件的某个早期阶段 我阅读了GitHub帮助中的“”一文,我阅读了GitHub的答案,和这里的许多其他人一样,仍然一无所获——文件显然已从我的本地存储库及其GitHub远程副本中删除,但当我刷新其他选项卡时,我可以清楚地看到该文件及其敏感内容 我遗漏了什么,或者下一步该怎么做?我必须联系GitHub支持部门。他们一边运行

我无意中提交了一个包含敏感数据的文件,并希望将其从当前GitHub repo状态和整个历史中删除。为了确保该过程完成,我在浏览器中打开了一个新选项卡,URL指向存储库历史记录中该文件的某个早期阶段

我阅读了GitHub帮助中的“”一文,我阅读了GitHub的答案,和这里的许多其他人一样,仍然一无所获——文件显然已从我的本地存储库及其GitHub远程副本中删除,但当我刷新其他选项卡时,我可以清楚地看到该文件及其敏感内容


我遗漏了什么,或者下一步该怎么做?

我必须联系GitHub支持部门。他们一边运行
git gc
,完成这个过程

因为我的存储库还没有任何协作者,而且我没有使用标记,所以我取消了步骤,在我看来这是不相关的。除此之外,我还做了:

  • 正在从
    敏感.file
    文件中清空存储库:

    git filter-branch --force --index-filter \
    "git rm --cached --ignore-unmatch sensitive.file" \
    --prune-empty --tag-name-filter cat -- --all
    
  • 强制更改GitHub:

    git push origin --force --all
    
  • 清除本地缓存的更改:

    git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin
    git reflog expire --expire=now --all
    git gc --prune=now
    
  • 在那之后,git向我报告说没有什么要提交的(
    git status
    ),我的本地存储库与远程存储库是最新的(
    git pull
    +
    git push
    )。但是,我仍然可以使用URL访问该文件,我在其中一个选项卡中打开了该文件,这将导致它在GitHub中的一个早期副本

    刷新页面没有带来任何更改。文件显然就在那里


    我联系了GitHub支持人员,并在五分钟内得到了回复(!)。他们必须运行git垃圾收集器(
    git gc
    ),才能完成这个过程。最后,提到的链接开始显示404。

    当您从GIT/GITHUB中删除敏感数据时,最重要的事情是:如果您在公共回购中有敏感信息,请考虑它受到损害。“如果您提交了密码,请更改它!如果您提交了密钥,请生成一个新密钥。”向没有足够勇气写评论的贪婪选民致意,这个问题有什么问题!:>