Git:refname'master'含糊不清

时间:2012-09-01 03:55:46

标签: git

我查看了所有其他模棱两可的refname问题,但似乎没有任何帮助。为什么我会收到此警告?

$ git checkout master
warning: refname 'master' is ambiguous.
$ git show-ref master
eef61c00da690f093063ac5a728e22fd21648104 refs/heads/master
$ git branch -a
  checkers
  exercises
* master
$ git remote -v
$ 

4 个答案:

答案 0 :(得分:58)

TL; DR:保存并删除标记,Ashutosh Jindal comments(请参阅“Rename a tag in git?”):

git tag tag-master master
git tag -d master

原始答案:

我看到的大多数资源(如this FAQ)都指向同一个原因:

  

当您尝试签出本地分支时,您会得到一个

warning: refname 'branch-name' is ambiguous
  

如果您创建了与远程标记同名的本地分支,则会发生这种情况。
  Git应该检查你的本地分支,但是它试图检查标记,并且它会混淆。

     

几棵树的初始导入是有问题的,因为它们包含相同名称的分支和标签。我们已经通过 renaming away the tags 解决了很多这些问题。

在您的情况下,您没有远程,但是名为分支的本地标记就足够了。

歧义在 gitrevision

中指定

<refname>,例如masterheads/masterrefs/heads/master

  

符号引用名称。例如。 master通常表示refs/heads/master引用的提交对象   如果您恰好同时拥有heads/mastertags/master,则可以明确说出heads/master 告诉git您的意思。
  如果不明确,则通过遵循以下规则中的第一个匹配来消除<refname>的歧义:

     

如果$GIT_DIR/<refname>存在,那就是您的意思(这通常仅适用于HEADFETCH_HEADORIG_HEADMERGE_HEAD和{{1} }});

     
      
  • 否则,CHERRY_PICK_HEAD如果存在;
  •   
  • 否则,refs/<refname>如果存在;
  •   
  • 否则,refs/tags/<refname>如果存在;
  •   
  • 否则,refs/heads/<refname>如果存在;
  •   
  • 否则,refs/remotes/<refname>如果存在。
  •   

请检查您的回购邮件中refs/remotes/<refname>/HEAD的位置。

并且master始终有效 警告:默认情况下,这会检出DETACHED HEAD mode中的分支。请参阅“Why does git checkout with explicit 'refs/heads/branch' give detached HEAD?”。

为了避免这种情况,仍然使用明确的引用,请输入:

git checkout heads/master

答案 1 :(得分:22)

虽然这不适用于OP的情况,但在意外执行refname is ambiguous而不是git branch origin/branch后,我收到了git checkout origin/branch警告。这创建了一个名为origin/branch的本地分支,这使得它与远程分支不明确。解决问题就像git branch -D origin/branch一样简单(安全因为-D在本地分支上运行)。

答案 2 :(得分:16)

这恰好发生在我身上。我不知何故有一个包含sha的文件.git / master。不确定那是怎么回事,但当我删除它时,错误就消失了。如果您仔细阅读接受的答案,这是“预期的行为”,但如果您这样做,您将看不到.git / master。 git show-ref master因为它遵循略有不同的规则。

答案 3 :(得分:0)

如果您错误地配置了两个具有相同名称的远程服务器,从而导致歧义,也会出现此消息。

检查您的 String getAddress = holder.address.getText().toString(); 文件。如果您有多个配置相同的远程存储库:

.git/config

您应该将其中一个更改为不同的名称,例如:

fetch = +refs/heads/*:refs/remotes/origin/*