今天遇到一个git名字ambiguous的问题。
warning: refname ‘origin/master’ is ambiguous.
git checkout -b newb origin/master
warning: refname 'origin/master' is ambiguous.
正常来说,这名字应该不会有歧义。通过git show-ref
命令查看:
$ git show-ref origin/master
b73e1c8fd21c28926884c8ac61d0666172930fef refs/heads/origin/master (wrong one)
aea283f55e75242cf57134c824e05007df4fab06 refs/remotes/origin/master
原来是有一个本地分支名称被命名称origin/master
了。这样当引用origin/master
时,git
f就无法确定是要用本地分支origin/master
还是origin
命名空间下的master
分支。
实际上这个本地分支origin/master
是被错误的创建的,所以只需要简单的将其删除即可。
git branch -d origin/master
上命的命令是可以正常工作的,没有报ambiguous
的错误,大概是因为remote
命名空间下的分支不能通过这个命令删除。所以这个命令才正常工作吧。
另外想精确的指定这个origin/master
分支,可以通过git update-ref
这个命令来实现:
$ git update-ref -d refs/heads/origin/master
注:本地分支都是在
heads
命名空间下的。