背景
这是个尴尬的背景
鉴于项目的与业务不耦合,于是决定将项目放到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
记得,推的时候,需要把相关的分支都取消保护
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。