misteriosas twigs que desaparecen en git

Aquí hay algunas acciones de git que realicé. Como puede ver, hice una nueva sucursal, modifiqué mis files y luego comprometí los cambios. Después de cambiar a otra twig, esperando fusionarse, desapareció la twig en la que estaba trabajando.

¿Alguien sabe cómo puedo recuperar los files de fixed_merge_branch? ¡Estoy enloqueciendo!

1.9.2@whisperme$ git branch fixed_merge_conflict 1.9.2@whisperme$ git checkout fixed_merge_conflict M ArtworkViewController.h M ArtworkViewController.m M ArtworkViewController.xib M Classes/DFRAppDelegate.h M Classes/DFRAppDelegate.m M Classes/WorkGalleryViewController.m M Classes/WorkGalleryViewController.xib M DFR.xcodeproj/project.pbxproj M DFRViewController.xib M Data.h M Data.m M MainWindow.xib M cn.lproj/Localizable.strings M en.lproj/Localizable.strings A fr.lproj/Localizable.strings Switched to branch 'fixed_merge_conflict' 1.9.2@whisperme$ git add . 1.9.2@whisperme$ cd Classes/ 1.9.2@whisperme$ git add . 1.9.2@whisperme$ cd .. 1.9.2@whisperme$ git add -u 1.9.2@whisperme$ git status # Not currently on any branch. # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: ArtworkViewController.h # modified: ArtworkViewController.m # modified: ArtworkViewController.xib # modified: Classes/DFRAppDelegate.h # modified: Classes/DFRAppDelegate.m # modified: Classes/WorkGalleryViewController.m # modified: DFR.xcodeproj/project.pbxproj # modified: Data.h # modified: Data.m # modified: MainWindow.xib # modified: cn.lproj/Localizable.strings # modified: en.lproj/Localizable.strings # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # fr.lproj/ 1.9.2@whisperme$ git commit -m "re-did changes lost by merge screw up" [detached HEAD 858491f] re-did changes lost by merge screw up 12 files changed, 110 insertions(+), 50 deletions(-) 1.9.2@whisperme$ git checkout develop Previous HEAD position was 858491f... re-did changes lost by merge screw up Switched to branch 'develop' 1.9.2@whisperme$ git branch artwork_model artwork_model_localisation artwork_screen * develop logger master start_artwork_model 1.9.2@whisperme$ git merge fixed_merge_conflict fatal: 'fixed_merge_conflict' does not point to a commit 1.9.2@whisperme$ git checkout fixed_merge_conflict error: pathspec 'fixed_merge_conflict' did not match any file(s) known to git. 1.9.2@whisperme$ git checkout fixed_merge_conflict error: pathspec 'fixed_merge_conflict' did not match any file(s) known to git. 1.9.2@whisperme$ git branch artwork_model artwork_model_localisation artwork_screen * develop logger master start_artwork_model 1.9.2@whisperme$ git checkout 1.9.2@whisperme$ git branch artwork_model artwork_model_localisation artwork_screen * develop logger master start_artwork_model 1.9.2@whisperme$ pwd /Users/tristan/Documents/DFR 1.9.2@whisperme$ 

¡Gracias un montón!

Bueno, no veo exactamente por qué la twig 'desapareció', pero no se preocupe, sus files no lo hicieron.

Puedes encontrarlos de muchas maneras:

  • Puede usar el post impreso por el process de git checkout cuando salió de su sucursal anónima: "La position anterior de HEAD era 858491f".
  • Puede usar git reflog y encontrar la confirmación de sus files.

Luego puede ejecutar esto para recrear la twig:

 git checkout 858491f -b fixed_merge_conflict 

y luego puedes hacer tu fusión:

 git checkout develop git merge fixed_merge_conflict 

O puede hacer la fusión en un solo paso si no le importa la sucursal:

 git merge 858491f 

por alguna razón, estás obteniendo una situación de detach head . No estoy del todo seguro de cómo se produce en un repository de git normal, pero lo he encontrado usando git svn ( y se me ocurrió aquí mi propia solución ). Puede ser que no estén --track el repository de subida cuando se crea una nueva twig. Por lo general, cuando obtienes una detached head , cuando haces una git branch , verás (asterisk) (no branch) (no sé cómo hacer un asterisco literal con la marca)