Currently I have
SSH server repo was the most up-to-date repo (production site) so I did a Git clone from there to local. I then tried to do a git push
to GitHub.
Everything went OK but then it said something about filename.gz being too large for GitHub. I didn't need this file so I ran several Git commands to get rid of it from Git cache then pushed back to SSH server.
I don't see the large file locally but it's still on SSH server even though git diff
returns nothing and git push returns "Everything is up-to-date" - And even though the file is not visible in local repo when I try to push to GitHub I still get error about it
remote: error: File fpss.tar.gz is 135.17 MB; this exceeds GitHub's file size limit of 100 MB
I followed steps under "fixing the problem" listed on GitHub help so shouldn't that have been enough?
How is the file still in the ether when it's not local or listed in git status/diff/push?
You can use
git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch <file/dir>' HEAD
This will delete everything in the history of that file. The problem is that the file is present in the history.
This command changes the hashes of your commits which can be a real problem, especially on shared repositories. It should not be performed without understanding the consequences.