[英]git upstream and tracking a remote branch
我有點想知道 git 的命名“上游”。
如果我創建一個本地分支
git checkout -b branch_local
想把它推到某個地方
git push remote_id branch_local:branch_remote
如果我查看分支遵循哪個遠程:
git branch -vv --all
我看到沒有任何設置。 如果我嘗試:
git pull
我明白了
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=<remote>/<branch> branch_local
為什么我必須設置“上游”才能獲得“下游”集? 可能我沒明白有沒有額外的下游設置?
“上游”是指分支默認情況下將推動和拉動的遙控器。 這也稱為“遠程跟蹤分支”。 有時,當您創建分支時,Git會為您設置此設置,但這取決於您的配置方式。
為了確保設置了上游分支,請在首次git push -u
使用git push -u
。
git push -u remote branch_local:branch_remote
您可以更改branch.autoSetupMerge
以使Git自動執行此操作。 當您從 git co -b foo remote/foo
類的遠程分支分支時, true
會設置跟蹤。 always
將始終進行跟蹤。
您需要告訴git讓您的本地分支跟蹤遠程分支。 Git是一個分布式系統,您可以創建大量不跟蹤任何上游更改的本地分支機構。
您要做的是將本地分支推送到遠程存儲庫,但是本地分支仍未跟蹤上游。 本身沒有“下游”,上游是您要跟蹤的遠程存儲庫的git術語。 設置好之后,push和pull都應該起作用(假設fetch和push url是相同的,但我想它們處於現階段)
為什么我必須設置“上游”
從 git 2.37+ 開始,如果您設置新的配置參數,則不再需要:
git config --global push.autoSetupRemote true
有了這個集合,一個簡單的git push
在你上面的例子中(簽出branch_local
)將把它推送到遠程( origin/branch_local
),並設置跟蹤分支關系。
在之前版本的 git 或沒有此配置時,您需要執行更復雜的推送,如git push -u origin HEAD
,其中-u
設置跟蹤關系,並且需要顯式來源和分支,因為跟蹤關系不存在然而。
(假設push.default
配置的默認設置為simple
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.