乐趣区

关于git:git项目数据批量脱敏

背景

这是个难堪的背景

鉴于我的项目的与业务不耦合,于是决定将我的项目放到 github 上。只是我的项目里有些测试,比拟敏感,须要进行脱敏。
通过一阵批改后,把敏感数据都批改了,提交。而后我的项目迁徙外网,还用上了 git push --mirror 想把 tags 什么都,也同步过来。

提交记录同步过来后,才发现,能够在提交记录里看到敏感数据的历史记录。这,着实难堪~

理一理我的需要:

  1. 要同步提交记录到 github
  2. 要进行敏感数据脱敏

所以,要把提交记录里,所有的敏感数据都解决掉!


通过 github 官网文档,发现官网有提供相干的解决形式。

BFG

BFG 是一个简略且疾速的,能够代替 git-filter-branch 的革除 git 仓库历史数据的工具。

  1. 革除大文件
  2. 革除明码、证书或其它隐衷数据

入手

资料:

  1. 下载 bfg 包
  2. 一个替换规定的文件,如:replacements.txt,文件里写好替换的规定

如:

PASSWORD1                       # Replace literal string 'PASSWORD1' 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  
git clone --mirror https://git.XXXX.com/XXX/XX.git
java -jar C:\Users\YY\Downloads\bfg-1.13.2.jar --replace-text replacements.txt ui.git

cd XX.git

git push --mirror https://git.XXXX.com/XXX/XX.git

记得,推的时候,须要把相干的分支都勾销爱护

退出移动版