Git Set Upstream Branch

Stewart Nguyen 6 febrero 2022
Git Set Upstream Branch

Este artículo presentará cómo establecer una relación entre la rama local y la rama remota.

Git llama a set upstream para establecer este tipo de relación.

La rama local se llama rama de seguimiento, la rama que sigue - la rama remota se llama rama upstream.

El propósito de establecer upstream es hacer más fácil el git push y el git pull.

Imagina que tienes un nombre de rama largo como este, feature/a-long-long-branch-for-feature-A.

Sin configurar la rama ascendente, debe ejecutar git push con el nombre de la rama explícitamente.

p.ej:

git push origin feature/a-long-long-branch-for-feature-A

Es más corto y puede deshacerse del nombre de la rama en la que está trabajando después de configurar la rama ascendente.

Simplemente ejecute git push, ordenado y fácil.

Para configurar upstream cuando la rama remota aún no se ha creado, use la opción --set-upstream-to junto con el comando git push.

git push --set-upstream-to origin <branch_name>

O su versión más corta,

git push -u origin <branch_name>
$ git push -u origin master
Enumerating objects: 17, done.
...
remote: Create a pull request for 'master' on GitHub by visiting:
...
To github.com:username/repo_name.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

Para configurar aguas arriba cuando la rama remota ya existe, use el siguiente comando.

git branch --set-upstream-to origin/<branch_name>

O,

git branch -u origin/<branch_name>

Por ejemplo,

$ git branch -u origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.

Otro beneficio de configurar upstream es indicar los commits no sincronizadas entre las ramas local y remota.

$ git branch -u origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.
$ touch file.txt
$ git add file.txt && git commit -m 'Add file.txt'
$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

Para desarmar upstream, usa git branch --unset-upstream; entonces, git status no mostrará la información adicional.

$ git branch --unset-upstream
$ git status
On branch master
nothing to commit, working tree clean

Artículo relacionado - Git Remote