Cómo recuperar files sin seguimiento con git stash

Así que escondí algunos files sin seguimiento usando

git stash --include-untracked 

y luego cambió a otra twig.

Si miro qué cambios están escondidos:

 backend/infinispan-rar/pom.xml | 12 ++++++++++-- backend/pom.xml | 13 +++++++++++-- backend/test/pom.xml | 3 +-- .../main/resources/com/mojiva/testDbContext.xml | 6 +++--- data/mojiva.xml | 2 +- dbmigration/pom.xml | 16 ++++++++++------ .../main/resources/db/changelogs/issue-17544.xml | 4 ++-- pom.xml | 11 +++++++++++ 

Luego traté de recuperar esos files usando

 git stash pop 

y consigue esto:

 backend/activator/effective.pom already exists, no checkout backend/adverter/src/test/java/com/mojiva/presenter/RequestParamReplacerTest.java already exists, no checkout backend/dao/.cpath already exists, no checkout backend/dao/.e0 already exists, no checkout backend/dao/PutObjectStoreDirHere/defaultStore/Recovery/TransactionStatusManager/#22#/0_ffffc0a86465_cfd2_5016b5cb_1 already exists, no checkout backend/dao/dep.tree already exists, no checkout backend/feeds-test/.e0 already exists, no checkout backend/feeds-test/dep.tree already exists, no checkout data/wurfl-patch.xml already exists, no checkout run/linksDB.log already exists, no checkout run/linksDB.properties already exists, no checkout run/linksDB.script already exists, no checkout Could not restre untracked files from stash 

Observe que ninguno de los files es el mismo?

¿Que esta pasando aqui?

¡Gracias!

Hice exactamente lo mismo hoy y no encontré ninguna ayuda útil. Así que hice este truco:

  • git checkout stash

Esto creará una twig temporal. entonces puedes aplicar el alijo en él.

  • git stash apply

  • Copie todos los files modificados de forma manual en un lugar seguro.

  • Ignore la twig temporal y realice el pago a la sucursal original.

  • Pegue los files donde los encontró en primer lugar.

Hecho.

Esta pregunta era vieja. Pero la respuesta puede ayudar a alguien como yo. asi que…

Deberías ignorar los loggings y otros files que no son código fuente. De cualquier manera, puede agregar --force para sobrescribirlos.

Lo que está sucediendo en su caso es que los files que escondió, cuando aparecieron, tratarán de sobrescribir los files que ya tiene en la carpeta de trabajo. En caso de que tengas un trabajo importante allí, git irá a lo seguro y no los sobrescribirá a ciegas.

El mejor consejo es limpiar su configuration:

  1. Agregue files que no son código fuente (como files de logging) a su file .gitignore .
  2. Los files de configuration deben tener cadenas de connection abstractas para que no cambien cada vez que se cambian twigs o entornos (use el repository en una máquina diferente). Consulte las secuencias borradas / limpias en el capítulo de attributes de git en progit.org/book.

Si eres nuevo, mantén abierto el canal de IRC #git en webchat.freenode.net 🙂