清除git历史敏感数据--bfg的应用

项目场景:

开源项目中的git历史中存在敏感 信息,如数据库地址,端口,密码,用户等

我们我们在主分支擦除密码,用户名等,git的历史记录里还是会有相关信息,并不能真正做到清除敏感信息


解决方案:

使用bfg工具包,下载地址:

https://search.maven.org/classic/remote_content?g=com.madgag\&a=bfg\&v=LATEST

下载完成后,将相应的jar包放到我们的项目目录下

编写替换文档 replacements.txt

注意bfg和txt文件要在同一目录下

接着输入指令

复制代码
java -jar bfg.jar --replace-text password.txt --no-blob-protection

然后输入相关指令清除git仓库

复制代码
git reflog expire --expire=now --all ; git gc --prune=now --aggressive

命令介绍:

git reflog expire --expire=now --all

这个命令的目的是将引用日志标记为过期,使得在后续的 git gc 操作中,不再考虑这些过期的引用日志。

  • git reflog expire 命令用于过期(清理)引用日志(reflog)。
  • --expire=now 参数表示将所有引用日志都标记为过期,即所有历史引用日志都被认为是不再需要的。
  • --all 参数表示应用于所有分支和 HEAD。

git gc --prune=now --aggressive

这个命令的目的是执行垃圾收集,并在清理不再需要的对象的同时,应用更激进的策略以优化存储库。

  • git gc 命令用于垃圾收集,即清理不再需要的对象。
  • --prune=now 参数表示立即清理过期的引用日志和不再需要的对象。
  • --aggressive 参数表示在垃圾收集时使用更激进的策略,以尽量减小存储库的大小。
相关推荐
muddjsv7 小时前
Git 代码同步与协作的核心命令全解析
git
历程里程碑8 小时前
2. Git版本回退全攻略:轻松掌握代码时光机
大数据·c++·git·elasticsearch·搜索引擎·github·全文检索
果然_14 小时前
为什么你的 PR 总是多出一堆奇怪的 commit?90% 的人都踩过这个 Git 坑
前端·git
yyuuuzz14 小时前
独立站搭建:从入门到避坑实战
前端·git·github
splage15 小时前
Nginx 反向代理之upstream模块以及完整配置反向代理示例
git·nginx·github
阿崽meitoufa17 小时前
hermes-agent安装到本地 Git方法
git·hermes·hermes-agent
云攀登者-望正茂19 小时前
特性分支合并develop引发的污染问题
git
就叫年华吧丶21 小时前
Git Bash、CMD 与 PowerShell 的区别详解
linux·git·命令行·powershell·cmd·gitbash
白玉cfc1 天前
Git提交规范
git·github
电化学仪器白超1 天前
小乌龟Git全程图形化操作指南:嵌入式本地版本管理与Gitee私有云备份实战
git·python·单片机·嵌入式硬件·物联网·gitee·自动化