通过GIT推送大文件的问题

Dav*_*ims 32 github

目前,当我尝试推送到Git仓库时,我收到以下错误.

remote: error: GH001: Large files detected.
remote: error: Trace: 7bbfe5c1099cfe679aa3cd1eee13e10a
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File e3384023be667de7529538b11c12ec68.201307290946.sql.gz is 125.37 MB; this exceeds GitHub's file size limit of 100 MB
Run Code Online (Sandbox Code Playgroud)

我已经完成并确保该文件在目录中不存在,并且已经完成了git add -u,我们已经尝试修剪分支但是这不起作用,因为它无法找到要删除的文件.

任何帮助将非常感激.

Von*_*onC 31

您可能正在推送多个提交,其中一个包括一个大文件,另一个更新的提交删除该文件.

在任何情况下,你可以尝试,如" 修复"这个超过GitHub的文件大小限制100 MB"错误 ",过滤器分支(如果你知道你看不到的大文件的名称/路径) )

git filter-branch --index-filter 'git rm --cached --ignore-unmatch e3384023be667de7529538b11c12ec68.201307290946.sql.gz' <sha1>..HEAD
Run Code Online (Sandbox Code Playgroud)

或者,如果您不知道但想要删除任何大文件(例如> 90MB),您可以使用BFG repo清洁器

bfg --strip-blobs-bigger-than 90M  my-repo.git
Run Code Online (Sandbox Code Playgroud)

这将在您的回购历史记录中跟踪您难以捉摸的大文件并将其删除.
请注意,之后您必须执行git push --force此操作,因为最近提交的历史记录将被修改.
如果其他人之前已经克隆过你的回购,那么为了警告他们,需要进行一些沟通.


use*_*932 24

在我的情况下,我用这个链接修复它:

GitHub帮助| 使用大文件

注意它在哪里说Giant_file(我没注意到)

$ git filter-branch --force --index-filter \
  'git rm --cached --ignore-unmatch giant_file' \
  --prune-empty --tag-name-filter cat -- --all

$ git commit --amend -CHEAD

$ git push
Run Code Online (Sandbox Code Playgroud)


Abd*_*sit 11

使用删除文件filter-branch

git filter-branch --tree-filter 'rm -rf your/file/path/task.txt' HEAD
Run Code Online (Sandbox Code Playgroud)

确保您必须添加rm -rf

之后推送代码

git push origin master -f
Run Code Online (Sandbox Code Playgroud)


Kem*_*hou 5

如果您有几个大文件,则需要运行另一个命令:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch largfile1'
git filter-branch --index-filter 'git rm --cached --ignore-unmatch largefile2'
Cannot create a new backup.
A previous backup already exists in refs/original/
Force overwriting the backup with -f
Run Code Online (Sandbox Code Playgroud)

你需要跑步

git update-ref -d refs/original/refs/heads/master
Run Code Online (Sandbox Code Playgroud)

然后可以运行git filter-branch命令

希望这对您有帮助