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