清除git里的敏感信息,个人密码

2018-03-31  本文已影响493人  Kaidi_G

之前的爬虫里面加了个发送邮件提示,绑了自己的个人邮箱和密码,传到git好久才发现这个问题,但是如果手动删掉再发一个新的commit,历史版本里仍然还会有这些信息,所以想要一个办法清除所有commit里面的信息。
搜索了一下发现了一个工具。


BFG Repo-Cleaner

BFG Repo-Cleaner是一个专门用来清除git库里bad data的工具。
主要有两个功能

使用前注意本机需要安装java.

此外在执行之前先要提到一个我自己遇到的问题
来自pull request的commit是不能被修改的
因为通过pull得到的commit是只读的:

The refs beginning 'refs/pull' are synthetic read-only refs created by GitHub - you can't update (and therefore 'clean') them, because they reflect branches that may well actually come from other repositories - ones that submitted pull-requests to you.

如过你没有这个问题,那么我们继续方法如下:

The problem is that URL like git://github.com/user/repo.git is read-only, SSH URL like git@github.com:user/repo.git and HTTPS URL like https://github.com/user/repo.git are writeable.

$ cd my_repo.git
$ git reflog expire --expire=now --all && git gc --prune=now --aggressive

注意,如果你跟我一样,repo里包含来自pull request的commit,那这些commit会被denied掉:
! [remote rejected] refs#11/head -> refs#11/head (deny updating a hidden ref)
目前没找到解决办法,删库重建吧 TAT

额外参考

上一篇下一篇

猜你喜欢

热点阅读