Git rebase de una twig a otra

Tengo el siguiente caso:

K---L new-feature / H---I---J dev-team1 / E---F---G dev-main / A---B---C---D master 

Y quiero mover solo la twig de nueva característica (K-L) en la twig dev-main sin forma (H — I — J) dev-team1

  H---I---J dev-team1 / E---F---G---K---L dev-main / A---B---C---D master 

git rebase tiene un argumento --onto que hace lo que necesita.

 git checkout new-feature git rebase --onto dev-main dev-team1 # Now new-feature has commits K' and L' after G in dev-main. git checkout dev-main git merge --ff-only new-feature 

Consulte la página de manual de "git rebase" para get más detalles. (También me gusta agregar -i solo para verificar que estoy moviendo los commits que creo que soy).

También puede usar git cherry-pick , especialmente si el número de confirmaciones es pequeño:

 git checkout dev-main git cherry-pick KL 

Puede seleccionar cuidadosamente K y L commits.

 git checkout dev-main git cherry-pick K 

Si tiene conflictos, corríjalos y haga

 git cherry-pick --continue git cherry-pick L 

Arregla los conflictos

También puedes usar una rebase interactiva.

 git rebase -i head~5 

En el editor abierto, reemplaza HI y J confirma líneas con

 pick F pick G