¿Qué sucede cuando hago git pull master de origen en la twig de desarrollo?

Digamos que tengo una twig de tema privada llamada develop con 2 commits antes de master.

¿Qué hace git pull origin master hacer?

¿Extraer todo del master remoto en el desarrollo local y fusionarlo? ¿Extraes todo en la twig principal local y lo fusionas?

¿Y hay alguna manera de actualizar Master desde el desarrollo sin el git checkout master primero?

git pull origin master extrae la twig maestra del origen llamado remoto en su twig actual. Solo afecta a su twig actual, no a su twig principal local.

Te dará una historia que se ve así:

 - x - x - x - x (develop) \ / x - x - x (origin/master) 

Su twig maestra local es irrelevante en esto. git pull es esencialmente una combinación de git fetch y git merge ; recupera la twig remota y luego la fusiona con su twig actual. Es una fusión como cualquier otra; no hace nada mágico.

Si desea actualizar su sucursal maestra local, no tiene más remedio que verificarla. Es imposible fusionarse en una twig que no está desprotegida, porque Git necesita un tree de trabajo para realizar la fusión. (En particular, es absolutamente necesario para informar conflictos de fusión y permitirle resolverlos).

Si usted sabe que ingresar al maestro sería un avance rápido (es decir, no tiene confirmaciones en su sucursal maestra local que no están en el maestro del origen) puede evitarlo, como se describe en esta respuesta .

Una vez que te comprometas, cambias a tu sucursal usando

 git add -A git commit -m <message> 

Entonces puedes hacer:

 git pull origin master 

en su sucursal y eso mantendrá sus compromisos en la parte superior de la extracción maestra. Tu twig estará ahora incluso con master + tus commits en la parte superior. Entonces, ahora puedes hacer:

 git push 

y git impulsará tus cambios, junto con los commits maestros en tu twig. Entonces, puedes fusionar fácilmente eso en master en Github.