¿Qué significa git push -u?
Tengo dos versiones diferentes de git. En la versión 1.6.2 git push
no tiene la -u
opción. Sólo aparece en la versión 1.7.x.
De los documentos, -u
está relacionado con la variable.
branch.<name>.merge
en git config
. Esta variable se describe a continuación:
Defines, together with branch.<name>.remote, the upstream branch
for the given branch. It tells git fetch/git pull which branch to merge.
¿Qué es una sucursal aguas arriba?
"Ascendente" se referiría al repositorio principal del que otras personas extraerán, por ejemplo, su repositorio de GitHub. La opción -u lo configura automáticamente en sentido ascendente, vinculando su repositorio a uno central. De esa manera, en el futuro, Git "sabe" hacia dónde desea enviar y desde dónde desea extraer, por lo que puede usar git pull
o git push
sin argumentos. Un poco más abajo, este artículo explica y demuestra este concepto.
Cuando insertes una nueva rama por primera vez, usa:
git push -u origin <branch>
Después de eso, puedes simplemente escribir un comando más corto:
git push
La primera -u
opción creó una sucursal de seguimiento ascendente persistente con su sucursal local.
¡Esto ya no está actualizado!
Push.default is unset; its implicit value has changed in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the traditional behavior, use:
git config --global push.default matching
To squelch this message and adopt the new behavior now, use:
git config --global push.default simple
When push.default is set to 'matching', git will push local branches
to the remote branches that already exist with the same name.
Since Git 2.0, Git defaults to the more conservative 'simple'
behavior, which only pushes the current branch to the corresponding
remote branch that 'git pull' uses to update the current branch.
La opción -u hace lo siguiente: para cada rama que esté actualizada o enviada correctamente, agregue una referencia ascendente (seguimiento), utilizada por git-pull sin argumentos y otros comandos. Entonces, después de presionar su rama local con la opción -u, esta rama local se vinculará automáticamente con la rama remota y podrá usar git pull sin ningún argumento.