簡體   English   中英

git 上游並跟蹤遠程分支

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM