如何删除 Git 记录中的敏感信息
最近一些内部开发的 Git Repository 需要开始做对外披露了,回想起当初测试时可能曾经把一些敏感信息给提交到 git 里了,尽管最后一次提交已经把敏感信息删除了,但是中间的提交历史是包含敏感信息的,因此不能直接把代码丢出去了,但是 git 的提交记录我还是想要保留的,这就成了一个问题了。当然最后还是成功解决了,所有的操作都是直接使用 git 命令完成的,特此记录一下。
第一步:
1 | $ git rev-list --all | xargs git grep -i YOUR-SENSITIVE-DATA |
第二步:
1 | $ git filter-branch --force --index-filter \ |
这样做实际上把那些含有敏感信息的提交记录都删除了。
之前:
1 | $ git log | grep commit | wc -l |
之后:
1 | $ git log | grep commit | wc -l |
减少的 11 个 commits 就是包含敏感信息的 commits。