¿Qué sucede cuando hago git pull origin master en la rama develop?


Digamos que tengo una rama temática privada llamada develop con 2 commits por delante de master.

¿Qué hace git pull origin master?

¿Extraer todo del maestro remoto en el desarrollo local y fusionarlo? Extraer todo en la rama master local y fusionarlo?

Y hay una manera de actualizar master desde develop sin git checkout master primero?

 48
Author: mrj, 2012-01-05

2 answers

git pull origin master extrae la rama maestra del control remoto llamado origin a su rama actual. Solo afecta a tu rama actual, no a tu rama maestra local.

Te dará la historia con un aspecto como este:

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

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

Si si desea actualizar su rama maestra local, no tiene más remedio que comprobarla. Es imposible fusionar en una rama que no está extraída, porque Git necesita un árbol de trabajo para realizar la fusión. (En particular, es absolutamente necesario para reportar conflictos de fusión y permitirle resolverlos.)

Si por casualidad sabes que entrar en master sería un avance rápido (es decir, no tienes confirmaciones en tu rama master local que no estén en el master de origin) puedes trabajar alrededor, como se describe en esta respuesta.

 77
Author: mrj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:17:11

Una vez que confirmes los cambios en tu rama usando

git add -A
git commit -m <message>

Entonces puedes hacer:

git pull origin master

En tu rama y eso mantendrá tus commits en la parte superior del pull master. Tu rama ahora estará igualada con master + tus commits en la parte superior. Por lo tanto, ahora puede hacer:

git push

Y git empujará tus cambios, junto con las confirmaciones maestras en tu rama. Puedes fácilmente fusionarlo en master en Github.

 3
Author: Vlad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-14 16:58:43