restaurar la twig de git eliminada no sabes el nombre de

Entonces, un colega me ha preguntado (como aprendiz de equipo del gerente de GitHub) si es posible recuperar una twig que creó hace meses, y que recientemente se eliminó pero no puede recordar el nombre. Nuestro tree de trabajo es el siguiente:

  1. twig principal (versión principal de producción)
  2. Rama de estadificación (Prueba antes del lanzamiento al maestro)
  3. Rama de desarrollo (twig principal de desarrollo donde se crean todas las twigs futuras desde
  4. Sucursales personales (nuestras twigs industriales en las que realizamos cambios, creadas a partir del Desarrollo y luego fusionadas de nuevo al Desarrollo cuando se completan)

La twig en cuestión se creó a partir del Desarrollo, pero nunca se fusionó cuando envejeció y las prioridades de trabajo lo retrasaron. Ahora hay time para volver a trabajar en ello. Nos preguntamos si es posible recuperar algún tipo de historial que podamos utilizar para ayudarnos a recordar el nombre de la sucursal para poder recuperarlo … si es posible …

¡Cualquier consejo sería apreciado! Han buscado en Google, pero la mayoría de las respuestas se basan en twigs que se han fusionado nuevamente.

Puede usar git reflog para verificar dónde estaba el HEAD point.

Puede haber la información como checkout: moving from develop to personal_branch , y el compromiso fue la twig personal a la que apunta HEAD.

Si el historial de logging se limpia en .git/logs desafortunadamente, puede usar git fsck --full en git fsck --full lugar.

Por Marina: la respuesta de MSFT, el mejor caso sería encontrar ayuda en la recompilation del repository que originalmente creó la sucursal (ya que tiene la mejor posibilidad de tener inputs de reflog relevantes).

Pero si eso no ayuda, el plan B sería localizar los compromisos pendientes. Una vez más, esto tiene la mejor posibilidad de éxito en el repository que alguna vez albergó la sucursal suponiendo que se eliminó recientemente. (Una vez que los commits se vuelven inalcanzables, es posible que gc elimine los commits por completo, y luego la plantilla está activa). Una forma de searchlos sería

 git fsck --unreachable --verbose 

y revisa la salida por algo como

 unreachable commit c0d3abcd... 

Probablemente verá varios si ve alguno; puedes usar

 git cat-file -p c0d3abcd 

para ver lo que cada uno es Si encuentra uno que represente el estado del que desea trabajar, ponga una twig en él. (El nombre de la twig original básicamente será irrecuperable en este momento).

Si el repository local ha perdido los objects en un gc , puede probar el control remoto. Probablemente no envíe los objects inalcanzables en una request de clonación o extracción (aunque es posible que dependa de la implementación del server, no puede contar con ella), pero puede proporcionar API para verificar sus reflogs u objects inalcanzables.