¿Qué podría hacer que `git pull` fallara al ver cambios remotos?

¿En qué circunstancias podría el git pull origin master resultado del command git pull origin master en un estado diferente de copy de trabajo que git checkout master -> git pull -> git checkout feat-a -> git merge master ?

La larga historia

Tengo una twig de características, vamos a llamarlo feat-a . Soy el único desarrollador que trabaja en esta twig. La twig se creó a partir de la twig master . Ambas twigs tienen orígenes remotos, origin/feat-a y origin/master . Nada especial, su arreglo típico de repository git.

Hoy quería actualizar mi twig de características desde el master remoto. De la comunicación anterior con otros desarrolladores, sabía que habría cambios contradictorios cuando fusioné el master remoto en mi twig de características.

Estoy usando SourceTree. Entonces, con la feat-a twig desprotegida, abrí el menu contextual en la twig de origen / maestro y elegí el Pull origin/master into current branch extracción Pull origin/master into current branch . Me sorprendió ver a Git informando que mi sucursal ya está actualizada. Sabía que no es correcto, debe haber cambios en la twig master remota. Repití el command unas cuantas veces. Siempre recibí el mismo post actualizado.

Para estar 100% seguro, lo hice "a lo grande". Revisé la twig master , hice clic en el button de extracción. La sucursal se actualizó con los últimos commits. Luego revisé feat-a branch y luego seleccioné el menu contextual en la twig principal y elegí Merge master into current branch . Voila! ¡Aquí estaba el conflicto de fusión que esperaba get!

Esto me desconcertó. Había asumido que realizar la pull desde el origin/master en mi twig actual es lo mismo que retirar master , tirar, verificar la otra twig y luego fusionar el master en la twig actual (con la exception de que tirar de master remoto a otra twig no actualizar mi master local, pero eso no debería afectar este problema).

Esencialmente, por alguna razón, el command de pull de origin/master en feat-a intentaba convencerme de que no hay cambios en el origin/master , y solo el largo path con el cambio de twigs y la fusión manual funcionó como se esperaba.

No estoy seguro de si SourceTree está haciendo algo especial que podría afectar este problema.

Usted dice que usa Sourcetree, así que supongo que en realidad no escribió git pull origin master en la línea de command. Supongo que es algo confuso en el post GUI o un error en Sourcetree.

Prefiero preguntar a los desarrolladores de Sourcetree.