I accidentally did a push --force
on the wrong repo (too many termminals open), effectively resetting the master branch back to an earlier commit.
Looking a
You can create a branch from an orphaned commit in the Github GUI by doing the following:
Now that you have a branch, you can use your Git client to check it out as normal.
This post was helpful as I researched this. It basically states that you are stuck unless you have a local repository containing the orphaned commits. My approach allows you to add a branch so the commit is no longer orphaned.
I understand currently you don't have the commit locally; nevertheless you can get it, without modifying your workspace, simply like this:
git fetch
After that, if ever you have current modification, or something like that, you can stash them temporary:
git stash save "My work to be completed later"
Then you can move back to your master branch:
git checkout -f master
Then, force to move the HEAD to the orphan commit you want:
git reset --hard XYZ
As alternative, in case, you prefer destroying and recreating your master branch, you can "move" to another branch, destroy the master branch and recreate it:
git checkout -b anyOtherBranch
git branch -D master
git checkout -b master XYZ
And eventually, push force your new master branch;
git push --force origin master
Is XYZ is reachable by some branch you can simply fetch. If not, please follow @weste's instructions to get it pointed to by a branch and then fetch:
git fetch
git checkout master
git reset --hard XYZ
git push -f origin master