这超出了GitHub的文件大小限制

时间:2016-02-06 12:19:36

标签: git github

我的github存储库中有一些大文件,我试图添加/ commit / push但是push命令给出了以下错误

remote:错误:文件app_dump.sql是106.67 MB;这超过了GitHub的文件大小限制为100.00 MB

所以我从我的存储库中删除了大文件(app_dump.sql)并再次添加/ commit / push。但我认为这不是正确的事情,因为每当我推动它仍然会尝试推送大文件?

$ git status
On branch master
Your branch is ahead of 'origin/master' by 4 commits.
  (use "git push" to publish your local commits)

nothing to commit, working directory clean

所以现在每次推送时都会遇到相同的文件大小错误。如何从git中删除文件? 我试过了

$ git rm app_dump.sql
fatal: pathspec 'app_dump.sql' did not match any files

但是没找到任何文件,因为我删除了它... 谢谢 卡尔

3 个答案:

答案 0 :(得分:4)

尝试恢复您提交的提交:

git reset HEAD~1

这应该撤消1个本地提交。撤消本地提交,直到包含大文件为止。删除大文件。提交您的更改然后推送。

答案 1 :(得分:2)

请参阅此文章:https://help.github.com/articles/remove-sensitive-data/。基本上你想重写你的存储库历史。但总是小心git filter-branch命令!

git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch app_dump.sql' \
--prune-empty --tag-name-filter cat -- --all

如果我是你,我会首先对存储库进行本地备份。只需将整个文件夹复制到其他位置,这样就可以对您的仓库进行试验。

如果您对结果感到满意,请将它们提交给Github,并记住这会重写历史记录,因此此处删除的任何文件也将从Github的历史中消失。

答案 2 :(得分:2)

删除文件后仍然保留在git提交中,因此您必须编辑git历史记录以从首先添加它的提交中删除该文件。

在之前的提交上执行交互式rebase:

  • git rebase -i ThatCommitSha~1并将edit放在该提交的行
  • rebase将在该提交时停止,git rm文件和commit --amend
  • git rebase --continue链接所有下一次提交(它们也将被更改,因为提交文件sha将更改)