2011-03-18 13 views
5

Supongamos que tenemos la siguiente situación en Git:Combinar/rebase una rama 'desconectada' en Git

 X---Y feature 
    /
A---B---C---D edge 

Ahora rebase la rama edge cambiar el B cometer un poco (usando edit) por lo que ahora se ve de esta manera:

 X---Y feature 

A---E---C'---D' edge 

C 'y D' son los mismos compromete como C y D, pero aplican en la parte superior de e (y observe que X dentro de la rama feature convirtió desconectado).

Ahora, ¿cómo puedo:

  1. Rebase/fusionar la rama feature de manera que sus confirmaciones aparecen como si se aplicaran en la parte superior de D '?
  2. Rebase/fusione la rama feature para que sus confirmaciones aparezcan como si se aplicaran sobre E, pero sin una confirmación 'fusionando rama ...' separada (y con C 'y D' siendo reescrito para convertirse en C ' 'y D' ')?

Respuesta

5

X no quede desconectada per se, todavía tiene el original B como su padre. Si desea reajustar posteriormente feature en la parte superior de edge, entonces:

git checkout feature 
git rebase edge 

Si desea cambiar el árbol de modo que tenga una estructura similar a la versión original, pero con X como un hijo de E, eso es :

git checkout feature 
git rebase --onto <sha-of-E> <sha-of-B> feature 
+0

¡Gracias! Esto lo resuelve. –