最近在 github 托管一个小 Demo,发现一个问题:
写了个 mongo 的配置文件,里面包含账号密码,年轻的我写了个 ignore 忽略文件。
但是万一有人拉 log,还是可以通过你的提交记录,看到敏感信息,这时候怎么做?
git-filter-branch
1 | git filter-branch [--setup <command>] [--subdirectory-filter <directory>] |
操作步骤
1 | # 复写敏感文件记录 |
命令说明
filter-branch –index-filter
–prune-empty – –all
用来重写 git 的版本历史记录。
index-filter 和 tree-filter 类似,但由于不走 git tree 等内容,直接走索引速度更快。
prune-empty 重写后如果产生 empty 的 commit,这个选项将移除到这些 commit。git rm –cached –ignore-unmatch
使用 cached,使文件在版本管理中去除,但本地硬盘中保留。
如果没有匹配到对应 file,ignore-unmatch 则会忽略警告错误。
当然还有其他方式——BFG
暂未尝试,如果有兴趣,请点击