(Just in case it makes a difference, this is on Github Enterprise)
I can't push changes out to a repo because I unwittingly committed two overly-large files to my local repo. These two files exceed the size allowed by github. I'm now locally several commits behind the origin. I don't care about the large files and have since removed them, but git push origin
still fails every time.
When I check the last commit in github, the repo is 10 days behind, meaning that not only do the large files fail, but the entire push fails. I apparently cannot push my repo anymore. Every time I try, I get this error:
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: File lib/abc.csv is 482.56 MB; this exceeds GitHub Enterprise's file size limit of 150.00 MB
remote: error: File lib/xyz.csv is 604.82 MB; this exceeds GitHub Enterprise's file size limit of 150.00 MB
To https://github.foobar.com/userx/myrepo
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://github.foobar.com/userx/myrepo'
Is there a way to fix this without rolling my local repo all the way back to the commit where the large files were added?
No. You must rebuild your history removing all commits which contain the big files.
To do so:
git rebase -i origin/master master
If your bad commits are only an add of big files, just delete them deleting the concerned lines in the rebase todo file.
If your big files belong to a more complex commit, use "edit" option in the rebase todo file on each concerned line. When the rebase operation stops just after the commit to amend:
git rm bigFile1 bigFile2
git commit --amend
git rebase --continue
Terminate the rebase, resolving all conflicts if necessary.
Finally, push again.