背景
这是个难堪的背景
鉴于我的项目的与业务不耦合,于是决定将我的项目放到 github 上。只是我的项目里有些测试,比拟敏感,须要进行脱敏。
通过一阵批改后,把敏感数据都批改了,提交。而后我的项目迁徙外网,还用上了 git push --mirror
想把 tags 什么都,也同步过来。
提交记录同步过来后,才发现,能够在提交记录里看到敏感数据的历史记录。这,着实难堪~
理一理我的需要:
- 要同步提交记录到 github
- 要进行敏感数据脱敏
所以,要把提交记录里,所有的敏感数据都解决掉!
通过 github 官网文档,发现官网有提供相干的解决形式。
BFG
BFG 是一个简略且疾速的,能够代替 git-filter-branch
的革除 git 仓库历史数据的工具。
- 革除大文件
- 革除明码、证书或其它隐衷数据
入手
资料:
- 下载 bfg 包
- 一个替换规定的文件,如:
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
记得,推的时候,须要把相干的分支都勾销爱护