Git 设置上游分支

Stewart Nguyen 2022年4月22日
Git 设置上游分支

本文将介绍如何建立本地分支和远程分支之间的关系。

Git 调用 set upstream 来建立这种关系。

本地分支称为跟踪分支,它跟踪的分支 - 远程分支称为上游分支。

设置 upstream 的目的是让 git pushgit pull 更容易。

想象一下,你有一个像这样的长分支名称,feature/a-long-long-branch-for-feature-A

在不设置上游分支的情况下,你需要显式执行带有分支名称的 git push

例如:

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

它更短,你可以在设置上游分支后摆脱你正在处理的分支名称。

只需执行 git push,简洁明了。

要在尚未创建远程分支时设置上游,请使用 --set-upstream-to 选项和 git push 命令。

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

或其较短的版本,

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

要在远程分支已经存在时设置上游,请使用以下命令。

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

或者,

git branch -u origin/<branch_name>

例如,

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

设置 upstream 的另一个好处是指示本地和远程分支之间的未同步提交。

$ 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)

要取消上游设置,请使用 git branch --unset-upstream;那么,git status 将不会显示额外的信息。

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

相关文章 - Git Remote