2012-09-18 35 views
39

Soy nuevo en Git y estoy usando el plugin EGit eclipse para comprometerme.git stash y git pull

Modifiqué algunos archivos y escondí los cambios, luego hice git pull en la línea de comandos que detuvo todas las últimas confirmaciones. Luego hice Apply stashed changes de EGit. Ahora aplicaba mis cambios y los cambios que salieron de la última confirmación de archivos escondidos desaparecieron. No estoy seguro de por qué no me preguntaron sobre los conflictos de combinación y sobrescribieron mis cambios y perdieron los cambios de confirmaciones anteriores.

¿Cómo obtener esos cambios?

+0

No suena plausible. El alijo se aplica o trae cambios sin conflictos o causa conflictos de combinación. Creo que olvidó mencionar algo. Además, puede repetir sus pasos, lo más probable es que su alijo esté todavía en la lista, use 'git stash list' para mostrarlo. – kan

Respuesta

103

Cuando usted tiene cambios en su copia de trabajo, desde la línea de comandos hacer:

git stash 

Esto esconder los cambios y limpiar su informe de estado

git pull 

Esto hará que los cambios de la rama ascendente. Asegúrese de que dice avanzar en el informe. Si no lo hace, es probable que esté haciendo una fusión involuntaria

git stash pop 

Esto se aplicará cambios escondido de nuevo a la copia de trabajo y eliminar los cambios de escondite a menos que tenga conflictos. En caso de conflicto, se mantendrán ocultos para que pueda comenzar de nuevo si es necesario.

si necesita ver lo que está en su escondite

git stash list 
+3

¿hay alguna posibilidad de hacerlo en un solo comando? –

+0

@java_newbie, si quieres hacer esto con escondite y tirar no, no hay forma. Pero puedes lograr el mismo resultado con rebase. El comando 'git rebase origin//' upstream branch name 'debe hacer lo mismo. – yilmazhuseyin

+3

Creo que esto lo hará: 'git stash && git pull && git stash pop' –