git 回滚_Git历史提交记录里的敏感数据怎么删掉?难道要回滚么?

点击蓝色“最码农”关注我哟

加个“星标”,每天下午18:03,一起学技术

作者:翠翠
链接:https://idealclover.top/archives/611/

前言

今天整理之前的 GitHub 项目,发现自己的一个项目不小心把服务器密钥暴露出来了。幸好是个 private 的库。就着手准备把这个文件删除。

但是在 Git 里删文件似乎不是个容易的事情 —— 由于 Git 会保留历史与版本回溯,所以需要将需要删除的文件在之前的版本中也一并删除掉

据说正常来讲需要使用 git filter-branch 命令,但咱也不是 git 大佬,接触新命令也挺陌生的,而且据说这个命令一来繁琐,二来当需要修改的文件较大 / 较多时,执行时间堪忧。

好在有一个叫做 BFG 的工具,提供了一种更快、更简单的 git filter-branch 替代方法,用于删除不需要的数据。简单踩了一下坑,做了一下步骤记录。

1. 安装 BFG

BFG 的官网在 这里,下载地址在 这里 另外由于这个是用 java 写的,所以需要安装 JRE,下载地址在 这里。

2. 删除文件

需要先将需要删除的文件进行删除并在本地进行一次 commit,才能在 BFG 中对文件进行删除。否则会提示 These are your protected commits, and so their contents will NOT be altered 而无法彻底清除。

3. 运行 BFG

万事俱备,准备删除

删除文件的命令:

java -jar bfg的路径/bfg-1.13.0.jar --delete-files 需要删除的文件

删除文件夹的命令:

java -jar bfg的路径/bfg-1.13.0.jar --delete-folders 需要删除的文件夹
4. commit 并 push 到远端

这里由于删除文件更改了之前的提交历史,所以必须 force push

git push --force 之后就可以去 GitHub 上检查一下文件是否删完了

5. 添加 .gitignore

最后不要好了忘了伤疤忘了疼呦~记得把相关文件添加到 .gitignore 里

用 Git 还是要谨慎一点哦

2e7312b0078a5e604b94fd8aec3defeb.gif 6c7b7721488c5e93c60879f64eb8ac40.png扫码关注最新动态关键时刻,第一时间送达 2e7312b0078a5e604b94fd8aec3defeb.gif

- END -

8b72d3a674723b9215503e619f7ddab3.gif 女程序员:梦见男朋友和别的女人一起逛街怎么办?在线等,挺急的 面向对象编程,再见! 看到这些代码,我自叹不如!!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值