usar pick multiple how given como commits cherry but bad git cherry-pick git-cherry-pick

multiple - how to use cherry pick in git



Git Cherry-Pick y conflictos (2)

Hay dos ramas de git diferentes. En uno está entrando el desarrollo (Branch1).

En otra sucursal se está realizando algún trabajo de PoC (Branch2). Ahora, quiero seleccionar los cambios de Branch1 a Branch2, para que Branch2 esté actualizado.

Ahora, después de los 4 o 5 cambios de selección de cerebros, tengo un poco de conflicto de fusión y no puedo continuar con más selecciones de cereza.

¿Debo resolver todos los conflictos antes de continuar con la próxima elección o puedo posponer la resolución de conflictos hasta que escoja todos los cambios (y resuelva todos los conflictos juntos)?

Además, ¿se sugiere hacer cherry-pick o ramificación en este caso?


Sí, necesito resolver todos los conflictos antes de continuar con la próxima elección.

Sí, al menos con la configuración estándar de git. No se puede escoger mientras hay conflictos.

Además, en general, los conflictos se vuelven más difíciles de resolver cuanto más tienes, por lo que generalmente es mejor resolverlos uno por uno.

Dicho esto, puede seleccionar múltiples confirmaciones a la vez, lo que haría lo que está pidiendo. Ver, por ejemplo, Cómo seleccionar múltiples confirmaciones . Esto es útil si, por ejemplo, algunas confirmaciones de deshacer las confirmaciones anteriores. Entonces querrá elegir todo de una vez, para no tener que resolver conflictos por los cambios que se deshacen en las confirmaciones posteriores.

Además, ¿se sugiere hacer cherry-pick o ramificación en este caso?

En general, si desea mantener actualizada una rama de características con el desarrollo principal, simplemente fusione el maestro -> rama de características. La principal ventaja es que una rama de características de combinación posterior -> maestro será mucho menos dolorosa.

La selección de cerebros solo es útil si debe excluir algunos cambios en el maestro de su rama de características. Aún así, esto será doloroso, así que trataría de evitarlo.


Antes de continuar:

  • Instale un mergetool adecuado. En Linux, te sugiero que uses meld:

    sudo apt-get install meld

  • Configure su mergetool:

    git config --global merge.tool meld

Luego, iterar de la siguiente manera:

git cherry-pick .... git mergetool git cherry-pick --continue