git: Cómo actualizar una confirmación que no está en la parte superior

En mi twig de trabajo, tengo tres parches dependientes. Todos ellos no fusionados.

<commit id -1> <Commit id -2> <Commit id -3> 

¿Cómo puedo agregar nuevos cambios a <Commit id -2> ?

Actualmente aquí está cómo lo estoy haciendo.

 git stash git reset --hard HEAD~1 git stash apply git add . git commit --amend git cherry-pick <commit id -1> 

Esto está funcionando sin ningún problema. Pero, ¿hay una forma mejor en la que pueda enviar los files por etapas a la confirmación que desee?

Puede usar la database interactiva y editar la confirmación deseada. Algo como:

 git rebase --interactive abc4321d^ 

En el editor, cambie la pick para edit o e . Aplicar los cambios ( git stash pop ) y luego confirmarlos.

De esta forma puede modificar múltiples commits antiguos en la misma ejecución. Para continuar la rebase y abordar el siguiente compromiso, usará:

 git rebase --continue 

En cualquier momento, si sientes que hiciste algo mal, puedes cancelar la rebase usando:

 git rebase --abort 

Tenga en count que volver a escribir la historia pública (un historial en un informe compartido con otros) es un mal hábito . Debería volver a escribir las confirmaciones anteriores solo si aún no están publicadas.