不小心提交到Git远程仓库的文件,怎么完全从仓库中清除?
小轲 Lv3

使用 Git 做代码版本控制时,有时候会不小心把某些敏感的文件提交到 Git 仓库,可能过后很久才发现。或者是以前提交的文件,现在发现不合适,需要从仓库中清理。 如果但是删除文件,然后提交的话,还是可以从仓库的历史记录中找出这个文件,这个问题就比较严重了。

所以,如果要彻底从 Git 仓库中删除某个文件可以用如下操作:

1
git filter-branch --index-filter 'git rm -rf --cached --ignore-unmatch path_to_file' HEAD

其中 path_to_file 就是你要删除的文件在项目中的相对路径,例如:src/main/resource/application.yml 。

执行此命令后,git 会遍历整个仓库的历史记录找出这个文件,清理,然后重新构造 git 的历史链条。

接下来强推就行了git push -f,这样远程仓库上也不会再存在这个文件了。

本文章转载于OSCHINA用户红薯:不小心提交到 Git 的敏感文件,怎么完全从仓库中清除 - Java自由人 - OSCHINA - 中文开源技术交流社区

 评论