一種上游分支分支的,或跟蹤遠程分支僅僅是默認情況下將使用git pull
和git push
命令時與之交互的分支。
當拉一個分支到你的,你可以明確地做到這一點:
git pull origin the_branch
,將取回遠程origin
然後合併origin/the_branch
到當前的分支。
如果使用總是拉同一分支,通過設置上游分支,你可以啓動git pull
:
git branch --set-upstream-to origin/the_branch
git pull
默認情況下,當你開始從遠程一個新的分支,git會增加它作爲上游分支:
git checkout -b origin/the_branch
# Is equivalent to
git branch --track the_branch origin/the_branch
git checkout the_branch
推時,它幾乎的同樣的事情。
配置push.default
將確定在使用不帶參數的git push
時要推送到的默認分支。
隨着值upstream
,它將簡單地推入上游分支。
使用默認值simple
,它將執行相同的,但前提是本地和上游分支名稱相同。
我讓你看看文檔來檢查其他配置的可能性。
:
$ git branch -vv
* my_branch 33f2d4c [origin/mybranch] a useful commit
master 3ed8e99 [origin/master] Merge
the_branch dbbb8c0 [origin/the_branch] commit on the branch
一個分支的上游分支也可以與@{upstream}
參考被稱爲:
可以通過使用-vv
開關看到所有的分支的電流上游分支
$ git rev-parse --symbolic-full-name --abbrev-ref @{upstream}
origin/the_branch
推送分支作爲等價的@{push}
(它將與99%的使用cas中的@{upstream}
相同ES):
$ git rev-parse --symbolic-full-name --abbrev-ref @{push}
origin/the_branch
@{upstream}
和@{push}
之間的區別是,當你使用一個三角形的工作流程的情況:您從只讀「上游」項目(通常是遠程按照慣例upstream
叫拉),推一個可寫入的存儲庫。
這是在GitHub上使用分叉工作流的情況。
我發了一篇關於此的(法語)博客文章,here is the auto-translated version。
你解決了懷疑與'默認情況下,當你從遠程啓動一個新的分支時,git會將它添加爲上游分支:'。這就是爲什麼我看不出差異,因爲每次我在某個分支時,我都會通過'git pull'刷新它,而不必指定分支名稱。我知道,如果我從檢查出來的分支中拉出/推送,Git會從遠端拉出那個分支。 – sandalone