Crea una twig después de algunas confirmaciones

Ayer, un desarrollador realizó un gran compromiso en el maestro que rompe un código y no crea una twig previamente para hacer esto.

La list de compromisos es:

+ da1cd10 --> HEAD + 48f70a1 + 3b94ae5 + a808c65 + 92ee96f --> Commit starting changes + 194dc5c + 2e2c5e0 | master 

Los files de movimiento de "92ee96f", agregaron varias carpetas que afectan a los otros desarrolladores. Todos los commits listdos arriba están en bitbucket.

Ahora, necesito separar el commit "92ee96f" en una twig específica y continuar el master con las otras commits como a continuación:

  master | | new branch | | da1cd10 + | 48f70a1 + | 3b94ae5 + | a808c65 + | | + 92ee96f --> Commit starting changes |/ + 194dc5c + 2e2c5e0 | master 

¿Es eso posible? y como tengo que hacer esto?

Romperemos su solución en dos pasos:

Paso 1: Creando una twig para 92ee96f commit.

Por lo tanto, use el siguiente command para crear una nueva twig:

git checkout -b new-branch 194dc5c

Ahora su nueva sucursal tiene HEAD en 194dc5c commit. Elige tu compromiso requerido para esta nueva sucursal.

git cherry-pick 92ee96f

Ahora tiene una nueva sucursal con 92ee96f commit según se requiera.

Paso 2: elimina la confirmación 92ee96f de tu tree de twig principal.

Si ya has pulsado la confirmación, utiliza el command "git revert 92ee96f" .

De lo contrario, use el siguiente command para eliminar esta confirmación.

git rebase -i HEAD

Esto iniciará la rebase en modo interactivo -i en el punto justo antes de la confirmación que desea golpear. El editor comenzará a enumerar todas las confirmaciones desde entonces. Elimine la línea que contiene la confirmación que desea borrar y guarde el file. Rebase hará el rest del trabajo, borrará solo esa confirmación y volverá a include a todos los demás en el logging. Entonces, si quieres impulsar tus cambios,

git push –force origin master

Espero que mi respuesta cumpla con la intención de su pregunta.

EDITAR: Después de leer la pregunta nuevamente, no estoy seguro de que mi respuesta sea la que quieres. Supuse que desea mover todas las confirmaciones que comienzan en 92ee96f a la nueva twig.

Mi respuesta se basa en un ejemplo de este gran artículo .

Cuando tenga la twig principal desprotegida, haga

 git branch new-branch 

"master" y "new-branch" señalarían el último commit – da1cd10

  git checkout master 

# Tenga cuidado con este próximo command: asegúrese de que "estado de git" es
# clean, definitivamente estás en "master" y el
# branch "new-branch" tiene todas las confirmaciones realizadas después de commit 194dc5c.

  git reset --hard <SHA1sum of commit 194dc5c> 

Ahora el maestro apuntaría a 194dc5c y new-branch a da1cd10.

Luego, cuando agrega nuevos commits a master (por ejemplo, a808c65), obtiene lo que desea

  2e2c5e0--194dc5c---- ... --- ... --- ... ("master") \ 92ee96f --- ... --- da1cd10 ("new-branch")