git branch搞砸了

时间:2011-08-27 07:49:54

标签: git

我有一个从远程克隆的本地存储库。当我这样做时:

git branch -a

我明白了:

* add-real-testcases
  couchdb_1.1.0
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/couchdb_1.1.0

现在,我认为这不正确。我期待的是:

  couchdb_1.1.0 -> origin/couchdb_1.1.0

由于我的couchdb_1.1.0分支正在跟踪远程分支(我只是推送到它,没有额外的信息)。所以我去查看我的.git/config

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git@myhost.com:my_repo.git
[branch "master"]
        remote = origin
        merge = refs/heads/master
[branch "couchdb_1.1.0"]
        remote = origin
        merge = refs/heads/couchdb_1.1.0

正如我所料,跟踪信息就在那里。但是git branch -a没有显示出来。

我遇到这种情况可能是因为我一直在创建和删除本地和远程分支。所以我尝试通过手动设置上游来解决这个报告问题(即使它已经在config中设置,但无论如何......)

$ git branch couchdb_1.1.0 --set-upstream origin/couchdb_1.1.0
Branch couchdb_1.1.0 set up to track remote branch couchdb_1.1.0 from origin.

git branch -a仍未显示。

我虽然git branch正在从.git/config获取信息,但不知道它不是。或许我对->git branch -a语法的含义感到困惑?

1 个答案:

答案 0 :(得分:3)

您误解了git branch -a的输出。 git branch没有向您显示有关您的本地分支跟踪您的哪些远程分支的信息,它只是向您显示哪些分支是其他分支的“符号引用”。

在这种情况下,来源HEADmaster来源的符号引用。这只是告诉您默认(或对于非检出的非裸存储库)原点是master

尝试git branch -vv查看当地分支机构的跟踪关系。