Git: fusionar un compromiso en una twig diferente

Entonces tengo 3 twigs;

  • develop – mi twig de desarrollo continuo
  • version_1 – una twig de lanzamiento
  • version_2 – una twig de lanzamiento

Tuve que hacer una revisión en la version_2 para reenviar esa versión, era un cambio de 2 líneas en 2 files, muy pequeño.

Quería aplicar esa corrección a la version_1 y develop .

Asique;

 git checkout version_1 git merge <commit checksum> 

Pensé que una confirmación solo contenía los cambios, por lo que solo aplicaría esos. Pero la fusión entra en conflicto porque intenta actualizar todos los cambios entre las dos twigs.

¿Hay alguna manera de fusionar / mover / aplicar SÓLO los cambios en un pequeño compromiso a otras twigs?

Podría simplemente volver a implementar manualmente la revisión en esas twigs, pero esto parece mucho trabajo duro, especialmente porque es posible que haya que aplicar más revisiones y aplicarlas a todas las otras twigs.

 Cheers, Will 

Fusionar solo una o algunas confirmaciones significa usar git cherry-pick

Primero cancele la combinación que acaba de hacer: consulte " Deshacer una fusión de Git? ".
Entonces:

 git checkout version_1 git cherry-pick <commit checksum> 

Esto se puede aplicar a múltiples commits o un range de commits: ver " Cómo seleccionar un range de commits y fusionarlo en otra twig ".

Necesitas cherry-pick estos commits.

Cambie a la twig donde desea agregar las confirmaciones:

 git checkout develop 

Luego, cherry-pick el compromiso. Primero haga un git reflog y obtenga el SHA-1 de la confirmación de la revisión.

Luego, mientras estás en la twig, cherry-pick

 git cherry-pick <commit SHA obtained above> 

Realice acciones similares en la otra version_1 .