2012-07-19 29 views
2

我需要一個本地分支拉和推到一個不同名字的遠程分支。克隆和獲取後,拉動將自動設置。但推動有點困難。我想這個:'git remote show <remote>'不服從'config push.default'

git push <remote> <localBranch>:<remoteBranch> 

每次都不用擔心local:remote。由於this blog post,我已經完成了所有工作。

正如博客解釋,我設置我的全局配置默認使用「上游」選項。例如:

git config --global push.default upstream 

它正確地將本地分支推到遠程分支只有git push <remote>

但是,當我用默認的主分支作爲上游的遙控器上做了git remote -v show <remote>,我得到如下:

* remote <remote> 
    Fetch URL: <giturl> 
    Push URL: <giturl> 
    HEAD branch: master 
    Remote branch: 
    master tracked 
    Local branch configured for 'git pull': 
    myLocalBranch merges with remote master 
    Local ref configured for 'git push': 
    master pushes to master (local out of date) 

爲何仍上報當地「主人」分支爲源動力的推動?它甚至說過時(如果使用本地「主」)。除了在Everything up-to-date中執行git push <remote>結果,所以它正確地使用myLocalBranch

我誤會了什麼嗎?這是git遠程顯示命令中的錯誤嗎?或者讓我的配置進入一個奇怪的狀態?

回答

1

實際上,這個OP是在'git remote'這個錯誤的印象之下提到了作爲myLocalBranch推動的分支的主人。

這是不正確的:所有顯示的是本地master推送到遠程master(可能在回購的初始克隆期間設置)。

專用於myLocalBranchbranch.myLocalBranch.merge配置未列出git remote

+0

我確實需要'myLocalBranch'來推/拉遠程'主'分支。據我所知,它是這樣做的。我遇到的問題是爲什麼'git remote show'告訴我爲git push配置的本地ref是我的本地主分支,當它實際上正確使用'myLocalBranch'時? – Tyson 2012-07-19 15:14:36

+0

@Tyson:全球推送政策是「匹配」或「簡單」(取決於您的Git版本),既然既有本地也有遠程「master」分支,「git remote show」命令提到了這一點,因爲在這個全球政策中,本地'master'被配置爲推送到遠程'master'(同名)。獨立於該策略,你的'myLocalBranch'已經註冊了一個上游分支(這裏是遠程的'master')。 – VonC 2012-07-19 15:20:47

+0

但是,我的全球推送政策並不匹配或不簡單。正如我在我的問題中所說的,我已經通過'git config --global push.default upstream'將其更改爲上游。 – Tyson 2012-07-19 15:27:33