背景

开发了一个报文解析程序,并且同时往github和公司的库中传,这样可以刷些github的活跃,也能给有需要的人参考。但是一不小心将测试和正式环境的数据库连接传进去了,这可是大大的不行,所以需要在日志中删除这些记录,同时保留其他修改。PS:还是不能懒啊,配置文件中敏感信息最好还是用系统变量😑

使用安装 git filter-repo 工具

pip3 install git-filter-repo

image.png

git配置文件修改确保能够使用该python

修改的配置内容

[alias]
    filter-repo = !python -m git_filter_repo

git配置文件

image.png

修改示例

image.png

删除历史记录中的敏感文件

注意执行命令的位置为项目工程内
比如我想删除的是application-dev.ymlapplicatin-prod.yml两个文件,这两个文件所在目录为我执行目录下的src/main/resources目录下,所以最后的命令为

python -m git_filter_repo --path src/main/resources/application-dev.yml --path src/main/resources/application-prod.yml --invert-paths --force

image.png

强制推送清理后的历史记录到远程仓库

git push origin --force --all

注意看下图我使用的github为分支名,我需要清洗的是往github库中记录,我这个分支命名为github,所以使用的不是origin, 如果你们要使用需要根据你们实际情况修改。
image.png