从Git仓库中删除某个包含敏感信息的文件
使用 Git 做代码版本控制时,有时候会不小心把某些敏感的文件提交到 Git 仓库,可能过后很久才发现。或者是以前提交的文件,现在发现不合适,需要从仓库中清理。 如果但是删除文件,然后提交的话,还是可以从仓库的历史记录中找出这个文件,这个问题就比较严重了。
所以,如果要彻底从 Git 仓库中删除某个文件可以用如下操作:
git filter-branch --index-filter 'git rm -rf --cached --ignore-unmatch path_to_file' HEAD
其中 path_to_file 就是你要删除的文件在项目中的相对路径,例如:src/main/resource/config.json 。
执行改命令后,git 会遍历整个仓库的历史记录找出这个文件,清理,然后重新构造 git 的历史链条。
接下来强推就行了 git push -f ,这样远程仓库上也不会再存在这个文件了。