不小心把敏感数据放到Github上怎么办?

Rec*_*bra 3 git github

我们的团队不小心将一些个人信息以 H2 数据库文件的形式推送到了 Github。有什么方法可以从服务器中干净、完整地删除文件?

简单地做git rm xxx.db似乎不是答案,因为人们可以很容易地git reset --hard找到包含用户数据的头部。

另一方面,

git reset --hard [the head before the db file was committed]
Run Code Online (Sandbox Code Playgroud)

也不是我们的偏好,因为自数据库提交以来已经有超过 10 次提交。

我们应该怎么做才能删除该数据库文件?

slh*_*hck 6

阅读有关删除敏感数据的 GitHub 帮助。

  • 运行以下命令以删除对整个存储库中文件的引用——这不会删除实际文件本身:

    git filter-branch --force --index-filter \
      'git rm --cached --ignore-unmatch <somefile>' \
      --prune-empty --tag-name-filter cat -- --all
    
    Run Code Online (Sandbox Code Playgroud)

    (确保替换<somefile>为要删除的文件的路径。)

  • 将文件添加到您.gitignore,然后git addgit commit.gitignore文件。

  • 运行git push origin master --force以获取上游的更改。

还有一些步骤,包括清理存储库写入 GitHub 本身以删除缓存数据。