¿Cómo puedo rebasear parte de una twig a la twig principal?

Originalmente, tuve algo como esto:

C---D (branch1) / A---B (master) 

Como necesitaba trabajar en otra cosa (que no estaba relacionada con branch1 ), decidí crear una nueva twig (llamada branch2 ). Hice un par de commits en branch2 y luego los empujé.

Ahora, mi intención era tener master como raíz de branch2 . Sin embargo, accidentalmente hice esto:

  E---F--G (branch2) / C---D (branch1) / A---B (master) 

¿Hay alguna forma limpia de hacer el tallo de branch2 directamente del master , como se muestra a continuación?

  E---F--G (branch2) | | C---D (branch1) |/ A---B (master) 

Los charts ASCII en su pregunta tienen un parecido extraño a los del segundo ejemplo que describe el uso de la --onto en la página man de git-rebase :

Otro ejemplo de la opción --onto es volver a basar parte de una twig. Si tenemos la siguiente situación:

  H---I---J topicB / E---F---G topicA / A---B---C---D master 

entonces el command

 git rebase --onto master topicA topicB 

daría como resultado:

  H'--I'--J' topicB / | E---F---G topicA |/ A---B---C---D master 

Ese ejemplo indica que aterrizará en la situación deseada ejecutando

 git rebase --onto master branch1 branch2 

Sin embargo , también escribe que ya ha presionado branch2 a algún control remoto cuando su repos como su segundo gráfico ASCII. ¿Estás compartiendo el control remoto en cuestión con alguien más? En ese caso, piense dos veces (¡o tres veces!) Antes de volver a basar, ya que es una forma de reescribir la historia, y nunca debe volver a escribir la historia que se ha compartido .