Git - Salvaging Lost Commits 07 Mar 2016
If you have not run a
gc yet and it has been less than 2 weeks (default gc setting) since the commits you lost were created you are in luck.
STEP 1 - fsck
git fsck --lost-found to identify the dangling commits
You will get something like this:
Checking objects: 100% (7151/7151), done.
dangling commit fa8249bd69c8cdf796e84a35dbb41d7d0c8e8930
dangling commit ce46084419bb1dfdb150c3af289efc1aafc5c066
dangling commit 934bf7ca1a24cea55cbef66d330b522ea0237339
dangling commit 9e0e15c2842838f1e0ad408ddc3ebe106454f962
dangling commit 36d1659104054279036e25c2d18406bddfdb848e
dangling commit dfe36b11aeb25b1164167563f9d81211914df4f1
dangling commit 1665174227ec2bda0a1edb5353427a4fdee239ba
Great! You have the commits but which one is which?
git show to the rescue
STEP 2 - show
find the commit you need with git show COMMIT_HASH e.g.
git show fa8249bd
Once you find the commit you would like to get back to - last step is to merge it to your current branch
STEP 3 - merge
git merge fa8249bd