2009-11-03 11 views
15

A veces estoy trabajando con varias ramas a la vez. Supongamos que tengo ramas llamadas master, release-1.1 y experimental. Creo un nuevo archivo o hago un cambio en experimental y quiero que ese único cambio se aplique a las otras ramas.¿Cómo fusiono una única confirmación?

¿Puedo hacer esto en git? Si simplemente fusiono la confirmación en otra rama, git automáticamente "avanza rápidamente" e incluye cualquier confirmación intermedia. Pero debe haber alguna forma de manejar este caso de uso.

Respuesta

22

Lo que quieres hacer es llamar cherry picking. Usted puede recoger la cereza un solo cometen con el siguiente comando:

$ git cherry-pick <commit hash or name> 

Esto incorporará el cambio de que se comprometan únicamente en su rama actual. Sin embargo, tenga en cuenta que esto crea un nuevo commit commit; esta nueva confirmación tiene exactamente los mismos cambios que la confirmación seleccionada (e incluso la misma fecha de confirmación y el autor), pero técnicamente es nueva confirmación, por lo que la verá como una confirmación nueva en, por ejemplo, gitk . También deberá realizar la selección de cereza para cada rama en la que desee ver el cambio.

4

La solución, pero por desgracia el que más necesita saber antes realizar el cambio, es la creación de rama separada sólo para este cambio (el llamado "tema rama"), fuera de la primera sucursal o más temprano se comprometen eso tiene sentido, y fusiona esta rama en cualquier rama que necesite este compromiso.

En algunos casos, otra solución podría ser realizar cambios en la rama de mantenimiento, fusionar la rama de mantenimiento en una rama estable y fusionar una rama estable en una rama de desarrollo.

Junio ​​Hamano C (Git mantenedor) escribió sobre esto en su blog: Resolving conflicts/dependencies between topic branches early

+0

¿Tiene un enlace a esa entrada de blog? Creo que sería útil, viniendo de una autoridad de Git. –

+0

¿Tal vez esa entrada de blog? http://gitster.livejournal.com/27297.html – VonC

+0

La selección de cerezas parece más apropiada que esto, lo siento. –

Cuestiones relacionadas