2010-11-08 148 views
4

這裏是場景。Git - 如何跟蹤您從本地分支創建的遠程分支?

我有分支一系列提交my_new_branch

我想要把這個分支與遠程回購作爲不同的名稱和跟蹤。

如果我做的:

git push origin my_new_branch:different_name 

它推動分公司罰款。

但是,如果我留在my_new_branch再拍承諾,如果我只是做

git push 

它說:「一切最新的」

而且,如果我看的.git/config中,我可以看到它還沒有建立跟蹤分支。

當然我可以做

git push origin my_new_branch:different_name 

了,但我怎麼得到它的追蹤?

如果我做

git checkout -b my_new_branch origin/different_name 

它抱怨該分支名稱已經存在。

謝謝!

+0

其實看起來是一樣的這個問題http://stackoverflow.com/questions/520650/how-do-you-make-an-existing-git-branch-track-a-remote-branch – bruce 2010-11-08 04:13:11

回答

2

正如您所提到的,「How do you make an existing git branch track a remote branch?」這個問題表明可以爲本地分支(自Git1.7.0)設置上游分支(您推送的位置)。

git branch --set-upstream my_new_branch origin/different_name 

它取代:

git config branch.my_new_branch.remote origin 
git config branch.my_new_branch.merge refs/heads/different_name 

默認情況下,git push使用一種特殊的Refspec ':'

特殊的Refspec :(或+:允許非快進更新)指示git推「匹配」分支
對於本地存在的每個分支,如果遠程端已經存在相同名稱的分支,則更新遠程端。
如果未找到明確的refspec(即既不在命令行中,也不在相應遠程文件的任何Push行中),這是默認操作模式。

因此你的麻煩與「git push」(沒有參數)。

+0

嗨後續問題,如果我想推my_new_branch到兩個單獨的遠程分支名稱remote_branchA和remote_branchB 是否使用此命令? 'git push origin my_new_branch:remote_branchA' 'git push origin my_new_branch:remote_branchB' – 2011-07-22 16:25:25

+1

@Kit:你的命令應該工作;當推送到多個分支時,您不能再依賴分支的配置,並且您需要指定遠程倉庫和目標參考,這是您所做的。 – VonC 2011-07-22 17:06:39

1

如果您記得在推送時使用-u,git會自動爲您設置。

-u,--set上游

對於每一個分支是最新的或成功推,添加上游(跟蹤)參考,由參數少GIT中拉(1)和其他用於命令。有關更多信息,請參閱git-config(1)中的branch..merge。

相關問題