Git: fusión detrás de los cambios

Guión:

  • La Computadora A y la Computadora B han clonado un repository git de Github.
  • En el equipo A, realizo cambios en un repository, confirmo y envío a Github.
  • En la Computadora B, realizo cambios a otros files no relacionados y me comprometo.
  • En la Computadora B, trato de presionar, pero no puedo porque olvidé hacer primero mis cambios.
  • En la Computadora B, selecciono los cambios, y git crea una "Combinación twig 'maestro' de github.com:user/repo" commit.
  • En la Computadora B, presiono los cambios en Github, pero tengo un compromiso molesto e innecesario de "Fusionar" en el historial de confirmaciones.

¿Cómo puedo usar la git merge para colocar la confirmación de fusión antes de todas mis confirmaciones que no se han enviado? Está bien si esto arruina los SHA de los commits sin apresurar.

¿Tengo que volver a git rebase ?

La forma más sencilla de evitar la fusión "molesta":

 git pull --rebase 

Esto networkingirigiría automáticamente sus cambios en la computadora B de tal manera que la historia parece ser lineal. Para get más información sobre rebase, mira esta respuesta .

Si ya has empujado tu compromiso de fusión de la computadora B a github, entonces es demasiado tarde: esta confirmación de fusión permanecerá allí para siempre. Si no, aún puedes volver a establecer la base. Pero es más fácil simplemente git pull --rebase para evitarlo en el futuro.

Si desea que git pull tenga un comportamiento de rebase pnetworkingeterminado, también puede poner esto en su configuration:

 git config --global branch.autosetuprebase always 

Esta opción en la configuration establecerá el comportamiento de la rebase cuando hagas una extracción para cada twig. Si desea hacer una extracción con una fusión después de configurar esto, puede hacerlo con la opción --no-rebase .

 git pull --no-rebase