¿Qué significa git push -u?

Resuelto Frankie Ribery asked hace 13 años • 3 respuestas

Tengo dos versiones diferentes de git. En la versión 1.6.2 git pushno tiene la -uopción. Sólo aparece en la versión 1.7.x.

De los documentos, -uestá 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?

Frankie Ribery avatar Apr 06 '11 11:04 Frankie Ribery
Aceptado

"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 pullo git pushsin argumentos. Un poco más abajo, este artículo explica y demuestra este concepto.

Rafe Kettler avatar Apr 06 '2011 04:04 Rafe Kettler

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 -uopción creó una sucursal de seguimiento ascendente persistente con su sucursal local.

Julian Pechacek avatar Feb 17 '2021 21:02 Julian Pechacek

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

Bergrebell avatar Jun 08 '2015 10:06 Bergrebell