Cómo "fusionar" una twig de git cuando olvidé crear una twig maestra

Recientemente cambié a Git de CVS / SVN y hasta ahora lo disfruté. Sin embargo, en mi último ciclo de desarrollo, olvidé un paso crítico en la creación de una twig principal antes de crear mi twig de desarrollo.

En mi ciclo normal, tengo mi troncal (código estable) y luego mi twig de mantenimiento en la que realizamos versiones de mantenimiento. Dentro de esa twig de mantenimiento, tenemos nuestras twigs de desarrollo para errores individuales.

Por lo general, mi twig de mantenimiento sigue mis versiones. Entonces en mi baúl tendré mis versiones principales (es decir: ver 1, ver 2, ver 3). Entonces mi twig de mantenimiento (es decir: 1.1, 2.1, 2.2, etc.). Luego, dentro de mi twig de mantenimiento, mi twig de desarrollo para esta versión (es decir: 1.2.1, 2.1.3, etc.).

En mi último ciclo, estaba trabajando en 2.2.1. Mi último lanzamiento fue 2.1.8. Accidentalmente me ramifiqué de mi twig 2.1 y trabajé en él, en lugar de crear primero una twig 2.2. Ahora, cuando quiero fusionar mis cambios, no tengo una twig 2.2 para fusionar nuevamente.

Lo que "debería" haber hecho fue fusionar mi twig 2.1 en el tronco (v2) y luego ramificado 2.2 desde el tronco y luego 2.2.1 desde la twig 2.2.

Ahora que no tengo una twig 2.2 y mi twig 2.2.1 sale de forma incorrecta 2.1, ¿cómo me salvó?

Ya se han realizado muchos trabajos de desarrollo en 2.2.1.

|-1.0 |-2.0 |-2.1 |-2.1.1 |-2.1.2 |-.... |-2.1.8 |-2.2.1 <---- wrong place!!! 

Debería haber sido:

 |-1.0 |-2.0 |-2.1 |-2.1.1 |-2.1.2 |-.... |-2.1.8 |-2.2 |-2.2.1 

Gracias,

Eric

Primero, en git siempre puedes cambiar las cosas más tarde y mover las cosas. Así que no entres en pánico. Primero, cree una copy de su directory completo para ejecutar las testings en una copy diferente "por si acaso" antes de hacerlo en su copy principal. Te hará sentir un poco más seguro.

Lo que debes hacer es:

1) crea la twig 2.2 donde quieras que esté. IE, comtesting de dónde deberías haber derivado (algo así como git checkout v2.1 , creo, pero es difícil saberlo a partir de tu descripción). Luego crea la twig 2.2 allí con algo como git checkout -b v2.2 .

2) Luego, debe mover su twig 2.2.1 a la twig v2.2. Esto es bastante fácil de hacer con git rebase , que funcionalmente mueve una twig desde un punto en un tree a otro. Usted haría esto con git checkout v2.2.1 seguido de git rebase v2.2 , que moverá los cambios realizados en la twig v2.2.1 a la nueva twig v2.2.