A menos que haya pirateado los datos en el directorio .git
, es poco probable que haya perdido algo. Es posible que tenga que hacer un lío terrible para limpiar, y puede llevar mucho tiempo calcular qué hizo y dónde está, pero es probable que no haya perdido nada.
Esa es la buena noticia.
La mala noticia es que va a ser diabólicamente difícil para cualquiera ayudarlo mucho.
Es probable que necesite identificar todas las ramas y rastrear las confirmaciones de cada una de ellas. Tendrá que decidir si todas esas operaciones 'git commit -a
' fueron una buena idea. Parece poco probable, por lo que es posible que deba realizar las fusiones correctamente, trabajando desde la siguiente hasta la última confirmación en cada rama.
También debe decidir lo que realmente estaba tratando de hacer.
Parece que quería fusionar algunas ramas, llámelas BranchA, BranchB y BranchC, a la rama principal, maestra. Pero no está claro eso es lo que probaste.
Dado que las cosas son un desastre, recomiendo crear otra rama que podemos llamar 'Reparación'. Crea esto desde el jefe de la rama principal.Luego, combine la versión adecuada de cada una de las BranchA, BranchB y BranchC en la rama Fixup. En cada etapa, verifique que el código realmente funcione correctamente, pasando su suite de pruebas, etc. Verifique cada fusión por separado en la rama de Reparación.
Cuando esté seguro de que la rama Fixup es correcta, vuelva a la rama principal y fusione la rama Fixup a la maestra.
Charles Bailey hace la sugerencia muy sensible (en un comentario a la pregunta): antes de hacer cualquier otra cosa, hacer una copia de seguridad de lo que se tiene, tal y como se encuentra actualmente. Solo entonces proceda con cualquier operación de limpieza. Y su sugerencia de obtener ayuda interactiva también es sensata.
volver a una vieja copia de seguridad siempre funciona para mí –
primer lugar, hacer una copia de seguridad completa de su árbol de trabajo y 'carpeta .git' ahora y poner en un lugar seguro, preferiblemente de sólo lectura. Por lo que has dicho, parece muy poco probable que hayas perdido el trabajo (no hay 'reset --hard', y parece que estuviste jugando con cosas comprometidas con las ramas). Una vez que hayas hecho eso, ve y encuentra a un experto en git en un canal interactivo en algún lugar que pueda informarte cómo buscar y restaurar tu estado anterior. Stackoverflow es casi seguro que no es el foro para esto porque necesitas ayuda interactiva, no solo preguntas y respuestas. –
Gracias a todos, voy a utilizar toda la sugerencia y resolver algo, realmente no puedo elegir una respuesta todavía. –