SourceTree – Git Rebase resulta en fusión automática

Estoy utilizando SourceTree 1.9.10.0 en Windows 10 y quiero volver a establecer una base de mi twig de funciones EUR-1058 en el maestro. Lo hago así:

enter image description here

Esto da como resultado el siguiente tree:

enter image description here

Y si hago un pull, ocurre una fusión automática:

enter image description here

¿Por qué está pasando esto? ¿Es por el hecho de que el compromiso "reescritura de Mailcheck" estaba en mi computadora portátil y ahora estoy rebase desde mi escritorio y el hash SHA-1 de alguna manera ha cambiado o algo similar?

Cuando reinició su twig EUR-1058 en el master , reescribió el historial de esa twig. Considere el siguiente diagtwig que ilustra el punto:

 master: ...A -- B ---- C -- D \ EUR-1058: E -- F 

Rebasar EUR-1058 en el master significa hacer los siguientes pasos:

  • volviendo la twig a la confirmación a partir de la cual se bifurcó el master , en este caso confirme B
  • luego, se repiten las confirmaciones del master en la parte superior de B , en este caso, se repiten las confirmaciones C y D
  • finalmente, vuelva a aplicar los compromisos que realizó a EUR-1058 desde el compromiso B , es decir, confirma E y F

Después de volver a basar, el diagtwig se ve así:

 master: ...A -- B ---- C -- D \ EUR-1058: E' -- F' 

Tenga en count que he labeldo E' y F' , para indicar que estos son, de hecho, nuevas confirmaciones, que se realizaron durante la rebase.

Ahora para responder a su pregunta real, cuando trataste de hacer un git pull en EUR-1058 , Git primero verificó para ver si su sucursal local podía ser reenviada rápidamente por lo que está en el control remoto (o en origin/EUR-1058 ). En este caso, no fue posible un avance rápido. Git ve la twig remota en este momento como algo totalmente diferente de lo que tiene localmente. Por lo tanto, completó la extracción haciendo un commit de fusión.

Lo que probablemente debería haber hecho es forzar el empuje de su twig EUR-1058 reestablecida al control remoto después de completar la rebase a través de:

 git push --force EUR-1058 

Aquí es necesario usar la fuerza porque la historia / base de la twig ha cambiado. Esta es la misma razón por la que terminaste con un commit de fusión. Después del empuje de fuerza, puedes continuar la vida de forma normal.

Como advertencia, debe tener en count que reescribir el historial de EUR-1058 puede causar problemas a cualquiera que comparta esta twig. Por lo tanto, debe hacerse con cuidado.