Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save AndrewSav/e109602a718903464f3e53dc5f27d45d to your computer and use it in GitHub Desktop.
Save AndrewSav/e109602a718903464f3e53dc5f27d45d to your computer and use it in GitHub Desktop.
Recover Force Push on Github
# First, you must get the previous commit sha, the one before the forced push:
## Hit through terminal
curl -u <username> https://api.github.com/repos/:owner/:repo/events
# Then you can create a branch from this sha:
## Hit through terminal
curl -u <github-username> -X POST -d '{"ref":"refs/heads/<new-branch-name>", "sha":"<sha-from-step-1>"}' https://api.github.com/repos/:owner/:repo/git/refs
#Finally, you can clone the repository locally, and force push again to master:
git clone repo@github
git checkout master
git reset --hard origin/<new-branch-name>
git push -f origin master
Credit: Sankara Rameswaran
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment