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
上找到了,使用 "
替换掉 '
即可。原来git
在 linux
上开发。在 windows
上面爱出各种各样的错误。我执行上面语句是在 AS
的 Terminal
中执行,出了错。最好是在 git bash
中操作 git
。在其它终端上面的话,你可能会需要一颗强大的心脏。
以前也遇到过类似的情况,执行 git reset HEAD^
的时候出来一个 More?
,也是这个原因,要使用 ~
替换 ^
。
还有在玩 githug
这个游戏时,提示出现在答案之后,让我困在第二关许久。
所以在此总结出,当你在其它终端按照正确的步骤操作 git
却出错了,首先切换到 git bash
中去试试。
网友评论