git filter-branch 奇怪错误记录

作者: 甜甜的清风啊 | 来源:发表于2017-09-11 15:42 被阅读0次

    git filter-branch --tree-filter 'rm -f <file>' HEAD

    错误现象:

    今天使用 git push origin master 的时候报错,说有文件过大,push 失败。

    错误原因:

    后来查证 github 有大文件限制, 50~100M Warning,100M 以上直接 error。然后我就去找到那个文件将其删除了,发现还不行。

    错中错:

    原来在我以前的提交中,已经把他提交到本地仓库了。我现在虽然将其删除了,但在前几次的快照中还是存在这个文件的记录。需要上面这句话来删除历史提交中的此文件。

    但是又来一个错:

    在解决这个问题的时候,我执行这句话一直报错。
    git filter-branch --tree-filter 'rm -f java_pid4252.hprof' HEAD

        fatal: ambiguous argument 'java_pid4252.hprof'': unknown revision or path not in the working tree.
        Use '--' to separate paths from revisions, like this:
        'git <command> [<revision>...] -- [<file>...]'
    

    后来终于到 StackOverflow上找到了,使用 " 替换掉 ' 即可。原来gitlinux 上开发。在 windows 上面爱出各种各样的错误。我执行上面语句是在 ASTerminal 中执行,出了错。最好是在 git bash 中操作 git。在其它终端上面的话,你可能会需要一颗强大的心脏。

    以前也遇到过类似的情况,执行 git reset HEAD^ 的时候出来一个 More? ,也是这个原因,要使用 ~ 替换 ^
    还有在玩 githug 这个游戏时,提示出现在答案之后,让我困在第二关许久。

    所以在此总结出,当你在其它终端按照正确的步骤操作 git 却出错了,首先切换到 git bash 中去试试。

    相关文章

      网友评论

        本文标题:git filter-branch 奇怪错误记录

        本文链接:https://www.haomeiwen.com/subject/fhrfsxtx.html