Pushing to github after a shallow clone

git, github, heroku, shallow-clone

Solution

From @nschum

For future reference: git now supports pushing from shallow clones (since version 1.9). It will still fail when pushing to an outdated fork that's older than your history.

(Aside: Unfortunately copy/paste is the recommended way to promote a comment to an answer)

Problem

I had a massive git repo because of a huge number of commits, so following advice here I created a shallow clone. I've made changes to this new local repo, and now I want to push to my origin at Github (and then on to my staging and production remotes on Heroku). Perhaps one day I'll learn to read the documentation: The git clone --depth command option says --depth Create a shallow clone with a history truncated to the specified number of revisions. A shallow repository has a number of limitations (you cannot clone or fetch from it, nor push from nor into it) So... how can I unpick myself from this situation and push my code to Github?

Original source

Related problems