2013-04-24 60 views
0
You asked to pull from the remote 'hub', but did not specify a branch. 
Because this is not the default configured remote for your current 
branch, you must specify a branch on the command line. 

我的問題是:以下是什麼意思?git消息 - 什麼是給定分支的默認配置遠程?

default configured remote for your current branch 

我們配置了遠程REPO。

任何人都可以請澄清這一點?

回答

1

每間本地分行可配置「追蹤」一個遠程分支。這意味着:無論何時您在遠程分支上拉取遠程和更新時,git都會嘗試更新您的本地分支以包含來自遠程分支的所有變更集:如果本地分支上未發生任何變化,轉發給遠程分支的新提示;如果你在本地分支有本地提交,那麼這兩個分支分支將被合併。

otoh,沒有規定說您的本地分支必須跟蹤遠程分支。 有一個本地分支foobar和一個遠程分支hub/foobar是完全有效的,它們之間沒有任何關係。

經驗法則是:

  • 克隆遠程倉庫,所有遠程分支(存在於的clone的時間)將是默認跟蹤由本地分支

  • 當添加新的遠程時,默認情況下不會跟蹤遠程分支

如果你想使一個本地分支遵循遠程分支明確地,我發現最容易推到遠程時使用-u標誌:

git checkout localbranch 
git push -u <REMOTE> 
+0

這個怎麼樣:'git的分支branch_name --set上游-to hub/the_new_remote_branch_pushed_earlier' :)?這有意義嗎? – MEM 2013-04-24 13:55:36

0

意思是說,你試圖從遠程repo hub拉,而指定分支的遠程是別的東西。如果你做git branch -a它會告訴你該分支目前正在跟蹤一個遙控器。

0

運行

git remote -v 

它會顯示每個遠程的名稱加上相關的git服務器的URL。
然後,

git pull [REMOTE] master 

應該讓你從git的服務器中拉出。 [REMOTE]是您從上一個命令中選取的名稱。

編輯。我想添加更多細節。當您使用git clone [GIT_URL]克隆git存儲庫時,git會自動配置與master分支關聯的名爲origin的遠程設備。運行git pull相當於運行git pull origin master,以及git pushgit push origin master相同。
要回到你的問題,你運行git pull hub,但默認關聯遠程分支origin-master所以你可能需要運行

git pull hub master 

得到它的工作