Git Stash falló

Estoy usando SmartGit en Windows. Hoy tuve que hacer un reinicio por hardware y mi pareja se compromete. SmartGit automáticamente hizo un escondite para mí de mis files modificados.

Después del reinicio, intentó aplicar el alijo:

$ git.exe stash apply --index stash@{0}

Pero me dio:

Apply Stash: stash failed (return code 1) .

Puedo ver el contenido del alijo y ver todo mi código, pero no puedo aplicar el alijo. ¿Cómo puedo solucionar esto?

Solo haz git stash pop . Te conseguirá tus cambios escondidos en el tree de trabajo. ( pop considerando que quieres stash@{0} .

¡Espero eso ayude!

Hay varias cosas que puedes hacer:

  1. git apply --index intenta preservar la configuration por git apply --index que está aplicando. A menudo, esto es "demasiado difícil", pero es posible aplicarlo sin --index , lo que permite que todos los cambios se vuelvan no escalonados. Si no necesita mantener la separación, eso puede "funcionar".

  2. Como sugirió un amigo , puede convertir el alijo en un parche. Tenga en count que el git stash show muestra solo la parte no almacenada del alijo, por lo que esto es algo así como no usar --index también.

  3. Si todo lo demás falla, puede convertir su alijo guardado en su propia (nueva) sucursal. Esto resucitará todas las confirmaciones que reset -away, pero solo en esa nueva twig . En esencia, 1 lo que hace git stash branch newbranch es:

    • convertir el índice guardado en el alijo en un compromiso ordinario
    • cuyo padre es el commit que estaba activo (fue el commit de HEAD ) cuando hiciste el paso de git stash save (y su padre es su mismo antiguo padre, etc.);
    • hacer la sugerencia de confirmación de índice de la twig newbranch , que es una twig recién creada; y
    • deje el tree de trabajo y (si se guardó como parte del alijo) sin seguimiento / todos los files listos para que usted se comprometa en la nueva sucursal en la que está ahora.

1 Es realmente "hecho" más que "esencia": así es como funciona la git stash branch simplemente porque deja el compromiso del alijo en su lugar y hace que un nuevo nombre de sucursal lo señale.

¿Puedes exportarlo a un parche y luego intentar aplicarlo manualmente?

 git stash show -p > my_stash.patch