背景
使用git推送isp-cdu项目到远程仓库,密码提交到了 Git 记录上。众所周知,公有仓库的 Git 记录是所有人可见的。所以一旦有敏感信息,不法分子就可以从提交的 commit 记录中寻找突破口。
解决
使用BFG清除
BFG是为专门为清除 Git 提交记录中带有敏感信息而产生的。 需要本地安装JDK8环境。当发现后,重新将密码去除后重新提交到 GitHub。此时,如果不看 commit 记录就不会知道历史版本,bfg 这个工具就为了防止有心人通过你的 commit 记录捕获你的敏感信息
安装BFG
1.下载jar包链接
https://repo1.maven.org/maven2/com/madgag/bfg/1.14.0/bfg-1.14.0.jar
2.将jar包拷贝到项目根目录
3.克隆远程仓库的 .git 文件夹
git clone --mirror git@gitee.com:ahaox/isp-cdu.git
4.在本地创建 replace.txt
文本名字是任意的,文本内容需要将密码填上,默认替换成 REMOVED ,也可以将其替换成自己想要的字符,规则如下所示
前面的 PASSWORD1 为仓库中的敏感信息,==> 后为替换的内容,
例如: password==> ******
PASSWORD1 # Replace with '***REMOVED***' (default)
PASSWORD2==>examplePass # replace with 'examplePass' instead
PASSWORD3==> # replace with the empty string
regex:password=\w+==>password= # Replace, using a regex
regex:\r(\n)==>$1 # Replace Windows newlines with Unix newlines
5. 在项目根目录下执行命令
需要注意两点,一是文本名字与路径,二是相关参数,也可用 --replace-text
java -jar bfg-1.14.0.jar -rt ./replace.txt isp-cdu.git
6.提交更改
进入备份到本地的 .git 目录,第一句命令自行修改
cd isp-cdu.git
git reflog expire --expire=now --all && git gc --prune=now --aggressive
git push
远程仓库的所有提交记录中的敏感信息已经被替换。
评论区