2011-08-25 22 views
14

Traté de entender How to undo a commit and commit the changes into the other branch in Git? pero no creo que tenga que ser tan difícil. (La respuesta es usando branch -f y stash y no creo que los necesite.)Copiar 1 compromiso de una rama (dev) a otra (estable) con un directorio de trabajo limpio

Estaba trabajando en mi rama de desarrollo. Tenía dos commits diferentes en dirty working dir. Confirme todos los cambios en dos commits diferentes. La última confirmación es WIP (material dev). De penúltimo está hecho y debe copiarse a la rama stable.

me imagino algo así como

$ git copy e87568fa stable 

pero estoy bastante seguro de que no es eso.

¿Tiene algo que ver con la selección de cerezas?

De hecho, quiero que la confirmación se mantenga en dev. Por lo tanto, no mv, pero cp.

Todavía estoy desconcertado por todas estas opciones y comandos de GIT.

Respuesta

21

Ir a la rama estable:

git checkout stable 

Copiar la deseada comprometerse con la rama actual.

git cherry-pick e87568fa 

Ahora puede volver a dev:

git checkout dev 
+0

que no tienen un directorio de trabajo sucio. Sin el 'alijo ', hice exactamente eso (http://stackoverflow.com/questions/1334027/git-working-on-multiple-branches/1340143#1340143). ¡Perfecto! Gracias. Incluso podría recordar esto =) y definitivamente usarlo de nuevo. – Rudie

+0

Hice los pasos anteriores, más otra línea de: 'git cherry-pick {commit-ID}' para mover el '{commit-ID}' a la rama de desarrollo – AceMark

Cuestiones relacionadas