Today I learned how to retrieve accidentally lost commits pushed to remote (via –force). I accidentally overwrote a co-worker’s committed changes and my own revisions on his branch using
git push --force origin/branch!
I freaked out at first realizing how grave the mistake I made. I panicked at first, like any child would panic after breaking something. Then, I paused and reflected on the problem and just figured out how to get the code back.
I followed this Stack Overflow discussion; and the summary of the commands are as follows:
# retrieves dangling SHAs, commits on your local machine that may have already been removed on remote git reflog show remote/origin/<your-branch-name> # see if you can still retrieve your lost commits available on your local machine that are no longer available on remote git checkout <some commit SHA> # if you found your commits and were able to check it out, great! You've recovered your changes git checkout -b feature/<your feature name>
Accidentally deleting commits, remote repository commit changes. Local copy of git branches, local copy of git commits. Data recovery. Source code recovery.