I had a branch I was working on for a long time on my desktop. First I commit changes to my desktop’s local branch, then push them to the remote branch and everything is dandy.
This morning, I was working on my laptop and selected the remote branch to change. The image below shows what my EGit repository window looked like on my laptop, except there was no local “MethodMigration” branch (there was a local master though). The remote “MethodMigration” branch had the little black check-mark next to it telling me that I’m viewing it as shown in the picture.
https://docs.google.com/file/d/0B7yGmb99B5enZm5OcTcydnEwLUE/edit (Sorry for the ghetto google drive link. I couldn’t figure out how to get an image link)
Anyhow, I started adding a whole bunch of stuff. After I was done, I did a “Team->Commit->Commit & Push” after giving it a message. At that point, I remembered that I hadn’t made a local branch for it yet… It told me “Nothing to push” even though a whole bunch of stuff had just been specified (which kind of makes sense since I never cloned the remote branch to make a local copy in the first place). The bad part is that all of my code was reverted back to the original “MethodMigration” remote branch code. Additionally, BitBucket shows no commits or anything.
Where did all my changed code go? Is there a way to get it back?
No worries!
You can use
git reflogto find the commit idSHAof the lost commit. After that simply merge it with your local branch:git merge <commit-id>