En jouant au XBox avec mon gars d'une main et en pushant mode code de l'autre, j'ai fais un mauvais rebase sur ma branche en squashant mon premier commit au lieu de mon second. Après j'ai fais un second rebase sur master (triple facepalm) et j'ai perdu mon commit "1".
Reconstitution:
git rebase -i master
squash 35aef17 Mon commit que j'ai perdu
pick 47udp8d Another commit to complete the task
Quoi ma branche est encore en conflit ? Ha ouais, j'ai encore des commits de master, ma rebaser sans interactif jpense que ça va faire!
git rebase master
Il ne me restait plus que le second commit.
git reflog
to the rescue!!! https://git-scm.com/docs/git-reflog
Grosso modo, ça permet d'avoir un historique sur chacun des moves git effectué localement.
Dans mon cas (still facepalming):
7056d91 HEAD@{17}: rebase -i (pick): Add DevicesHealthPresenter
617f7da HEAD@{18}: rebase -i (squash): Merge branch 'master' of github.com:mirego/hortau-platform-core
f579e10 HEAD@{19}: rebase -i (start): checkout master
4f22a9d HEAD@{20}: commit: Add DevicesHealthPresenter
J'ai donc pu effectuer: git checkout 4f22a9d
et retrouver mon code perdu!
Je peux maintenant continuer de travailler sur mon projet!