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