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