Git 设置上游分支
Stewart Nguyen
2022年4月22日
本文将介绍如何建立本地分支和远程分支之间的关系。
Git 调用 set upstream
来建立这种关系。
本地分支称为跟踪分支,它跟踪的分支 - 远程分支称为上游
分支。
设置 upstream 的目的是让 git push
和 git 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