¿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.