[英]git branch is messed up
我有一个从远程仓库克隆的本地仓库。 当我做:
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
的->
语法感到困惑?
您误解了git branch -a
的输出。 git branch
不会向您显示有关本地分支机构正在跟踪您的远程分支的信息,而只是向您显示哪些分支是其他分支的“符号引用”。
在这种情况下,origin的HEAD
是对master
的象征性引用。 这只是告诉您origin上的默认分支(对于非裸存储库,已签出)是master
。
尝试使用git branch -vv
查看本地分支的跟踪关系。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.