2011-01-31 18 views
9

Tengo dos ramas diferentes del mismo software en el que trabajo todos los días. Sin embargo, cada vez que pago en la otra rama, mi proceso de compilación puede tardar hasta una hora. Para resolver esto, acabo de ver el proyecto una vez para cada rama en dos carpetas separadas.Al usar git, ¿cómo mueves algunos cambios no confirmados de una rama a otra rama en una carpeta diferente?

Hice algo de trabajo en una rama, y ​​me di cuenta antes de confirmar que estaba en la carpeta incorrecta, y por lo tanto la rama incorrecta. ¿Cómo puedo mover el trabajo que hice en esta rama a la otra rama, preferiblemente sin crear una confirmación (si eso es posible)?

Respuesta

19

En el directorio con los cambios, hacer:

 
$ git diff > patch 

cd a otro directorio, y hacer:

 
git apply /path/to/patch 
+1

Esto debería funcionar, aunque podría reducirlo un poco más. 'cd project2 && (cd ../project1 && git diff) | git apply'. No es necesario escribir un archivo de parche en el disco. –

+1

Gracias, funcionó. Usé 'git diff> patch',' git reset --hard', luego lo moví a la rama correcta y 'git apply patch'. – thameera

6

Bueno, también puede no construir la otra rama ..

  1. Realiza el cambio, no cometer
  2. Cambiar a la otra rama
  3. COMMIT (no construyen)
  4. Vuelve

Naturalmente, esto sólo funciona si se puede permitir que usted se cometen sin construir (razonable en algunos casos).

+0

Esta solución es menos propensa a errores que el uso de diff/apply imo – Trindaz

Cuestiones relacionadas