git修改之前提交的版本删除敏感数据

git里提交了敏感的数据,和文件,需要替换掉一些字符串,删除掉一些文件。

看有两种方法,用bfg或git filter-branch。


bfg简单试了下

删文件 java -jar bfg.jar --delete-files hello.php

替换字符串(未成功) java -jar bfg.jar --replace-text passwords.txt  --no-blob-protection


git filter-branch试了下

替换字符串 git filter-branch --tree-filter "find . -name 'hello.php' -exec sed -i -e 's/hello/world/g' {} \;"

删除行 git filter-branch --tree-filter "find . -name 'hello.php' -exec sed -i -e '/hello/d' {} \;"

删除文件 git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch -fr ./test/hello.php'


实际使用时,先clone下代码,用git filter-branch操作后,清理一下远程仓库再做push。

之前clone下的代码,需要删除了重新clone一份,看起来原因是用git filter-branch修改后commit hash版本号变了,之前clone的直接push上去后,会把旧的提交的版本push上去,这些就的提交里还包含那些敏感数据。


参考https://stackoverflow.com/questions/4110652/how-to-substitute-text-from-files-in-git-history


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值