2012-07-26 147 views
7

我是一個Mercurial用戶,我對遠程分支機構的行爲感到困惑。我有一個遠程分支origin/dev,我想複製它在本地分支dev。我想的是:Git-跟蹤遠程分支機構

  • 每當我git pull,改變origin/dev合併爲dev
  • 每當我git push,改變dev合併爲origin/dev

所以我創建了一個跟蹤分支與

git branch --track dev origin/dev 

其中,最好的m Ÿ知識,應該完全符合我的需要。

不過,我正在研究一個功能分支併發布了一個git pull。當我後來出具git checkout dev我收到了令人費解的消息

你分支的背後是「產地/ master_dev」 2個提交,可以快進。

因此,似乎我的本地分支終究沒有更新。有沒有辦法讓分支更新到遠程的每當我拉,我目前不在該分支?如果沒有,我糾正git merge(沒有任何參數)分支開發足以恢復的情況?

+0

相關:[如何讓現有的Git分支跟蹤遠程分支?](http://stackoverflow.com/q/520650/456814)。 – 2014-05-23 18:22:01

回答

5

命令git pull從所有遠程分支獲取更新(即更新所有遠程跟蹤分支)。但只合並當前分支。當沒有參數傳遞時,這是默認行爲git pull

當你在差異分支上時,你git pull,它只是更新了遠程追蹤分支dev。現在git merge就足以更新您的本地分支dev

+3

作爲一個附註,[取和合並,不要拉](http://longair.net/blog/2009/04/16/git-fetch-and-merge/)。 – Shahbaz 2012-07-26 09:58:52

+0

Acutally我只是試圖簡單地合併,結果是致命的:沒有提交指定和merge.defaultToUpstream沒有設置。即使分支被創建爲跟蹤 – Andrea 2012-07-26 10:34:23

+1

行。爲了讓它工作,你可以這樣做'git merge remote_name/branch_name'。在你的情況下,'git merge origin/master_dev'。 – 2012-07-26 10:53:00