2014-11-08 78 views
1

我在幾臺機器上使用Git。我必須有一個配置,這是一個機器,因爲在這種情況下,我在master,並且有一個遠程分支origin/foo並且想要創建一個跟蹤遠程分支的本地分支foo,發生以下情況:如何在創建具有相同名稱的本地分支時自動跟蹤遠程分支?

  • 上大部分的機器,我需要使用命令(而在master):

    git checkout -b foo origin/foo 
    
  • 但是

    上就足夠了,如果我只用一臺機器:

    git checkout -b foo 
    

在這兩種情況下,我得到

Branch foo set up to track remote branch foo from origin. 

但是,第二個命令只對我的機器之一,並在他們的休息,它只檢查了當地的分支機構foo。爲什麼是這樣,哪個設置負責它的工作?

P.S.我做了以下事情,但沒有幫助:

  • 已更新爲git v 2.1.3;
  • 確保我只有一個遙控器;
  • 獲取的遠程分支機構與git fetch origin

UPDATE的信息,關於git checkout -b foo作品是假的機器之一。檢查本地分支以跟蹤遠程的正確命令是git checkout foo而不是-b

回答

1

檢查git版本是否爲舊版本。

的Git的最新版本總是應該在創建一個跟蹤分支git checkout -b

如果<branch>沒有找到,但這裏的確在只有一個遠程具有匹配名稱(稱之爲<remote>),治療存在的跟蹤分支爲等同於

git checkout -b <branch> --track <remote>/<branch> 

(或foo是存在於多於一個遠程)
(鄰R您沒有從獲取遠程的是,並沒有檢測遠程跟蹤分支origin/foo

不過的存在,它使用git checkout foo,不git checkout -b foo,作爲OP Alex Popov確認in the comments

+0

唉,將'git'從1.9.1更新到2.1.3並沒有幫助我,我更新了我的問題。這是一種奇怪的問題... – 2014-11-08 09:44:38

+0

@AlexPopov是你的.git/refs/remotes/origin文件夾中存在的'foo'分支嗎? – VonC 2014-11-08 09:47:09

+0

是的,它是....... – 2014-11-08 09:48:27

相關問題