2012-09-26 49 views
0

这是而不是Find out which remote branch a local branch is tracking,如果我有多个遥控器,我可能在所有这些遥控器中都有“主控”。 git branch返回主,但我不知道如果我在主分支是在remoteFoo或remoteBar。例如,我可能会做:找出当地分支正在跟踪哪个远程

git clone someRepo.git 
cd someRepo 
git remote add anotherRemote otherremoteURL 

然后git remote显示

someRepo 
anotherRemote 

我可以做git checkout -b master someRepo/mastergit checkout -b master anotherRemote/mastergit branch会说 “主人”,在这两种情况下。如何取回第一部分“someRepo”或“anotherRemote”?

你会认为我可以使用git remote show,但它需要一个参数,你想要的信息的远程名称。

$ git remote show origin 
fatal: 'origin' does not appear to be a git repository 
fatal: The remote end hung up unexpectedly 
$ git remote show 
someRepo 
anotherRemote 

随着git branch我得到的是什么电流指示:

$ git branch 
    hold 
* master 
    old-stuff 
    refactor 

git remote输出没有 “*”。

+0

究竟它是如何不一样,所引用的问题? [这个答案](http://stackoverflow.com/questions/171550/find-out-which-remote-branch-a-local-branch-is-tracking/7733266#7733266)似乎给出了跟踪远程分支的详细信息由你当地的分支机构;如果你做'git checkout someRepo/master',git会明确地告诉你,你处于分离的HEAD状态,'git branch'会像你想象的那样说'(不分支)',而不是'master'。 – lanzz

+0

也许我错过了它,但在这个问题中我没有看到任何命令显示了当前分支的远程控制台,只显示了分支名称。 –

+0

'git branch'给你当前分支的名称,'git remote show origin'告诉你哪个本地分支跟踪哪个远程分支。可能不会有特定的命令以特定的方式处理您的特定情况。 – lanzz

回答

6

你可能想尝试以下详细地查看信息。

git remote -v 
git remote -v show origin 

输出示例如下:

[email protected]:/var/www/pirate_booty$ git remote -v 
origin [email protected]:dmasi/pirate_booty_calculator.git (fetch) 
origin [email protected]:dmasi/pirate_booty_calculator.git (push) 

[email protected]:/var/www/pirate_booty$ git remote -v show origin 
* remote origin 
    Fetch URL: [email protected]:dmasi/pirate_booty_calculator.git 
    Push URL: [email protected]:dmasi/pirate_booty_calculator.git 
    HEAD branch: master 
    Remote branch: 
    master tracked 
    Local branch configured for 'git pull': 
    master merges with remote master 
    Local ref configured for 'git push': 
    master pushes to master (up to date) 
+0

谢谢! 'git remote'列出我所有的遥控器,'git remote -v'显示当前遥控器的状态,因此我可以将该输出的第一行的第一个单词作为当前的遥控器使用。 –

1

这是回答类似的问题here:获得远程分支由当前分支被跟踪,

git rev-parse --symbolic-full-name --abbrev-ref @{u} 
+0

这给了我错误(错误:没有为分支'主'配置上游)。你使用的是什么版本的'git'?我在1.7.11.3。 –

+0

1.7.12。如果你没有上游分支,那么可能还有另一个问题。这是一个新的分支,你把它推到遥控器上吗? git分支的输出是什么-a? –

相关问题