Revisé otra rama con actualizaciones, luego hice algunos cambios, volví al git principal y ¡ahora los cambios desaparecieron! ¿Puedo recuperarlos? la terminal era basicamente:
$ git commit
[detached HEAD 7c09e17] Fixed some stuff
files changed, insertions(+), deletions(-)
$ git push master
fatal: 'master' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
$ git checkout master
Previous HEAD position was 7c09e17... Fixed some stuff
Switched to branch 'master'
$ git merge theother/directory
Suponiendo que todavía estás en el maestro:
git merge 7c09e17
debería ser suficiente. git
suele ser bueno para decirle las ID de compromiso, si mira la terminal.
-
checkout master, git merge 7c09e17, git checkout master, git push, parece resolverlo, ¡gracias!
– Sin errores
27 de enero de 2012 a las 23:10
-
y, por curiosidad, ¿hay alguna forma de ver/cancelar todas estas confirmaciones en mi máquina local?
– Sin errores
28 de enero de 2012 a las 0:40
-
@NoBugs, si desea ver todas las confirmaciones colgantes (confirmaciones que no están en una rama), creo que desea
git fsck --unreachable --no-reflogs
.– Mateo Flaschen
28 de enero de 2012 a las 0:47
-
y si no vio la terminal, puede obtener la información que necesita de git reflog
– William Pursell
28 de enero de 2012 a las 13:34
-
@MatthewFlaschen ¡Ojalá pudiera votarte más de una vez! ¡Esto acaba de salvarme el trasero!
– KOGI
25/07/2013 a las 22:30
Tuve un similar problema. encontré git reflog
ser un salvavidas. En caso de que ayude a ilustrar su uso, aquí está el resultado:
e3191c5 HEAD@{0}: checkout: moving from ec31ccf0735240d0cdc5a44fd443039c3caa43f0 to master
ec31ccf HEAD@{1}: commit: Added code and data for simulation.
781b9ee HEAD@{2}: checkout: moving from 3bd804e635b913840c71b7f8a33665460580d45f to 781b
3bd804e HEAD@{3}: checkout: moving from master to 3bd804
Mi situación era un poco diferente en el sentido de que había realizado una confirmación mientras estaba en un estado HEAD desconectado a partir de una confirmación muy antigua.
Si simplemente quisiera fusionar ec31ccf0735240d0cdc5a44fd443039c3caa43f0
(también conocido como ec31ccf
que es donde yo tenido estado) en master
Pienso git merge ec31ccf
o git rebase ec31ccf
podría haber funcionado. Pero esto sería principalmente fusionar la historia antigua en mi caso (con conflictos de fusión, etc.).
En cambio, solo quería recuperar lo que había hecho en ec31ccf
y git cherry-pick ec31ccf
funcionó muy bien
-
git reflog
¡Me ayudó mucho al encontrar mi rama separada perdida! ¡gracias por mencionarlo!– Félix D.
30 de agosto de 2018 a las 10:50
duplicado de stackoverflow.com/questions/4845505/…?
– chispas
27 de enero de 2012 a las 22:56