Un colega mío acaba de tener esta situación. En su caso, hubo commits en cabecera desprendida - trabajan en R-Studio-- y la herramienta sí les advirtió que podían crear la rama con esta y aquella referencia SHA ... pero como la única opción era "Cerrar" --¡¡duh !! era un cuadro de información: cerraron el diálogo y perdieron la información para siempre ...
Gracias al reflogcomando pudimos ver que los cambios no se perdieron. Pero en nuestro caso, el git branchno funcionó como se esperaba ... o un entrante git pulllo estropeó de alguna manera. Tuvimos que pescar los cambios del reflog a la rama recién creada:
git cherry-pick 0b823d42..3cce27fc
que colocó todas las confirmaciones que queríamos en la rama. Entonces podríamos fusionar la rama developsin problemas.
En caso de que esto sea informativo para alguien, identificamos las confirmaciones en la cabeza separada en el reflogal mirar las que están entre las marcadas con "checkout" (que identifican el cambio de rama):
e09f183b HEAD@{3}: pull: Fast-forward
b5bf3e1d HEAD@{4}: checkout: moving from lost_changes to develop
b5bf3e1d HEAD@{5}: checkout: moving from 3cce27fca50177a288df0252f02edd5da5ee64fd to lost_changes
3cce27fc HEAD@{6}: commit: add statistics
417a99a4 HEAD@{7}: commit: add test
0b823d42 HEAD@{8}: commit: new utility class
d9ea8a63 HEAD@{9}: checkout: moving from develop to d9ea8a635d4c2349fcb05b3339a6d7fad5ae2a09
b5bf3e1d HEAD@{10}: pull: Fast-forward
Aquellos que queríamos eran HEAD@{8}a HEAD@{6}(ambos inclusive). Entonces los obtuvimos por:
git cherry-pick 0b823d42..3cce27fc
Luego, la resolución de fusión habitual y la confirmación final nos dejaron con la rama lost_changes que aloja el trabajo de cabezal separado que creíamos perdido. Fusionar eso en desarrollo fue un avance rápido esta vez.