stash rama partir otra crear consola conflictos git rebase squash

partir - Git squash todos los commit en rama sin conflicto.



git stash (2)

Un flujo de trabajo de desarrollo común para nosotros es la verificación de la rama b , asignar un montón a ella, y luego aplastar todos esos compromisos en uno (aún en b ).

Sin embargo, durante el proceso de rebase -i para aplastar todas las confirmaciones, a menudo hay conflictos en varios pasos.

Básicamente, quiero modificar la rama en una confirmación que represente el estado del repositorio en el momento de la confirmación final en b

He hecho algunas búsquedas pero no he encontrado exactamente lo que estoy buscando. No quiero merge --squash porque nos gustaría probar la rama de la característica aplastada antes de fusionar.


Esto es similar a la respuesta de Rasmus, pero se divide en tres pasos que siempre deberían funcionar:

$ git merge feature1 $ git reset --soft HEAD@{1} $ git commit -c feature1

Explicación:

  1. fusionar y resolver conflictos
  2. mantener los cambios en escena, pero restablecer a la cabeza de edad
  3. confirme todos los cambios utilizando el mensaje de confirmación y el autor del último compromiso de la rama de características

Si no necesita la información de confirmación, puede hacer un reinicio por software. Luego, los archivos permanecerán como estaban y cuando los confirme, este compromiso estará por encima del compromiso al que se restableció.

Para encontrar la confirmación de restablecer a:

git merge-base HEAD BRANCH_YOU_BRANCHED_FROM

Entonces

git reset --soft COMMIT_HASH

Luego vuelva a elaborar el compromiso, tal vez:

git commit -am ''This is the new re-created one commit''