会删除源文件,所以先备份
第一步:git ls-files 列出git管理的文件
第二步:git ls-files | grep 过滤关键词
第三步:git filter-branch - -index-filter ‘git rm -r - -cached - -ignore-unmatch path/to/your/file’ HEAD
第四步:git push origin currentbranch - -force
第五步:rm -rf .git/refs/original/
第六步:git reflog expire - -expire=now –all
第七步:git gc - -prune=now
第八步:git gc - -aggressive - -prune=now
说明:
所有的- - 要把中间空格去掉
第三步的path/to/your/file为你要剔除的文件路径
第四步的currentbranch为你操作的branch名
问题处理:第三步如果出现can not create new backup
执行git for-each-ref - -format=”%(refname)” refs/original/ | xargs -n 1 git update-ref -d
或者git update-ref -d refs/original/refs/heads/master解决
问题:fatal: refusing to merge unrelated histories
git merge –allow-unrelated-histories currentbranch
从缓冲区中去除git reset - - src/main/res/drawable/*.png