将一个文件从 Git 仓库历史中完全删除

文章目录

    背景

    无意间将一张非常大的图片(6M)提交到了 Git 仓库中,导致提交到 BitBucket 非常慢
    ,所以需要将其从 Git 提交历史中完全删除。

    在 BitBucket 被墙的情况下,甚至出现错误

    error: RPC failed; result=55, HTTP code = 200

    另外一种情况就是, 提交了敏感的信息,例如密码,key 文件等。

    解决

    git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch app/img/*' --prune-empty --tag-name-filter cat -- --all
    

    提交的时候

    git push origin master --force
    

    参考