如果不小心将敏感数据放到Github上该怎么办?

如果不小心将敏感数据放到Github上该怎么办?

我们的团队意外地将一些个人信息以 H2 数据库文件的形式推送到 Github。有没有办法从服务器中彻底删除文件?

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

另一方面,

git reset --hard [the head before the db file was committed]

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

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

答案1

阅读 GitHub 帮助删除敏感数据

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

    git filter-branch --force --index-filter \
      'git rm --cached --ignore-unmatch <somefile>' \
      --prune-empty --tag-name-filter cat -- --all
    

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

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

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

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

答案2

除非你做以下任何一件事:

  • 删除存储库
  • 联系 GitHub

悬而未决的提交仍然可见。因此,如果您可以更改的不仅仅是凭据,请执行上述一些操作。

也可以看看:https://stackoverflow.com/questions/4367977/how-to-remove-a-dangling-commit-from-github

相关内容