2012-05-21 228 views
0

我有一个远程仓库和一个本地仓库。我做了git fetch --all,看到我想在本地仓库分支,我想创建一个本地跟踪分行:Git:如何推送本地分支重命名远程分支?

git checkout -t -b bug1000 origin/user/bug/1000 

我的问题是,拉的都是正确的,但推的都没有设置:

>$ git remote show origin 
* remote origin 
    Fetch URL: XXX 
    Push URL: XXX 
    HEAD branch: master 
    Remote branches: 
    maint          tracked 
    master          tracked 
    user/bug/1000        tracked 
    user/bug/1001        tracked 
    user/bug/1002        tracked 
    Local branches configured for 'git pull': 
    bug1000  merges with remote user/bug/1000 
    maint  merges with remote maint 
    master  merges with remote master 
    Local refs configured for 'git push': 
    maint  pushes to maint  (local out of date) 
    master  pushes to master  (local out of date) 

.git/config看起来是正确的:

[remote "origin"] 
     fetch = +refs/heads/*:refs/remotes/origin/* 
     url = XXX 
[branch "master"] 
     remote = origin 
     merge = refs/heads/master 
[branch "maint"] 
     remote = origin 
     merge = refs/heads/maint 
[branch "bug1000"] 
     remote = origin 
     merge = refs/heads/user/bug/1000 

我已经尝试git push -u origin bug1000:user/bug/1000,但它不会改变任何东西。

这是使用git 1.7.10.2(作为写作时最新的稳定)。

回答

0

您可以添加对远程一个push项,但如果你有很多的这些,可能很麻烦:

[remote "origin"] 
    fetch = +refs/heads/*:refs/remotes/origin/* 
    url = XXX 
    push = refs/heads/bug1000:refs/heads/user/bug/1000 

如果您添加了另一个虚拟的“目录”,并使用bug/1000在本地而不是bug1000 ,那么推送配置可能是push = refs/heads/bug/*:refs/heads/user/bug/*,从长远来看这可能更清洁。

+0

我看着添加推送线,但实际上有很多分支要跟踪。添加推线然后使我无法简单地推送给主... – utopiabound

+1

请注意,您可以添加多个推送线,以便您可以使用与“正常”分支匹配的默认分支和特殊分支(或多个)来处理错误分支。 – twalberg