2012-08-31 41 views
8

Así que llegar escondidos algunos archivos sin seguimiento utilizandoComo recuperar archivos sin seguimiento con alijo git

git stash --include-untracked 

y después se cambiaron a otra rama.

Si miro lo que se llegar escondidos cambios:

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 los archivos usando

git stash pop 

y conseguir 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 restore untracked files from stash 

en cuenta que ninguno de los archivos son los mismos?

¿Qué está pasando aquí?

Gracias!

+0

Posible duplicado de [No se puede aplicar el alijo al directorio de trabajo] (http://stackoverflow.com/questions/10508903/cannot-apply-stash-to-working-directory) –

Respuesta

-2

Debe ignorar los registros y otros archivos que no son el código fuente. De cualquier manera, puede agregar --force para sobrescribirlos.

Lo que está sucediendo en su caso es que los archivos que escondió, al abrir, tratarán de sobrescribir los archivos 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.

mejor consejo es limpiar su configuración:

  1. añadir archivos que no son de código fuente (como archivos de registro) para su archivo .gitignore.
  2. Los archivos de configuración deben tener cadenas de conexión abstraídas para que no cambien cada vez que cambie de rama o entorno (utilice el repositorio en una máquina diferente). Consulte las secuencias borradas/limpias en el capítulo de atributos de git en progit.org/book.

Si eres nuevo, mantener el canal abierto en el IRC#git webchat.freenode.net :)

+0

Dónde se incluye '--force' en el 'git stash' man page? –

+0

No veo ninguna opción para '--force' a' git stash pop' –

4

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

  • git checkout stash

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

  • git stash apply

  • copiar todos los archivos modificados manualmente en un lugar seguro.

  • Ignore la bifurcación temporal y el pago a la sucursal original.

  • Pega los archivos donde los encontraste en primer lugar.

Hecho.

Esta pregunta era vieja. Pero la respuesta puede ayudar a alguien como yo. así que ...

+0

'git stash apply' paso plantea exactamente el mismo error que en la pregunta:' No se pudieron restaurar los archivos no rastreados del alijo ' – Thierry

0

Desde el siguiente mencionado blog sobre cómo aplicar un alijo creada con -a en lugar de -u:

Encuentra el alijo de comprometerse:

git log --graph --all --decorate --oneline 

Compruébelo usted mismo

git checkout <sha> 

Restablecer principal:

git reset HEAD~1 

Crear un alijo limpia:

git stash -u 

ahora usted puede comprobación master y aplicar el nuevo escondite.

https://blog.tfnico.com/2012/09/git-stash-blooper-could-not-restore.html#!

Cuestiones relacionadas