警告:refname“ HEAD”不明确


139

我是Git的新手,如果执行以下命令,我似乎有太多分支:

warning: refname 'HEAD' is ambiguous.

我得到以下输出:

warning: refname 'HEAD' is ambiguous.
From github.com:dagda1/hornget
 * branch            master     -> FETCH_HEAD
warning: refname 'HEAD' is ambiguous.
warning: refname 'HEAD' is ambiguous.

如果我执行 git branch -a

我得到以下内容:

HEAD
* master
remotes/emmekappa/master
remotes/origin/HEAD -> origin/master
remotes/origin/master

我为之困惑remotes/origin/HEAD -> origin/master

这是什么,如何摆脱歧义分支。

我通过执行合并进入了这个阶段,我认为我添加了歧义分支。


11
您尝试执行的第一个命令是什么?当然不是warning: refname 'HEAD' is ambiguous.
Ben James

1
remotes/origin/HEAD -> origin/master没问题:它仅显示remote中默认的分支origin。名为HEADis 的分支。
2009年

3
我认为您需要编辑问题以向您显示命令在哪里尝试执行:)
Kris 2010年

要重现此内容,请运行“ git fetch origin HEAD:HEAD”。显然,它尝试将当前分支合并到一个新的分支中,该分支的名称为HEAD。
Brain2000

Answers:


224

问题是您有一个分支HEAD,这绝对是危险的,因为这是当前分支的任何分支的符号名称。

重命名:

git branch -m HEAD newbranch

然后您可以检查它并决定要做什么(删除它,或以描述性分支名称保存)

origin/HEAD远程分支不是问题)


如果碰巧具有与分支同名的文件或目录,也会发生这种情况。
马特·康诺利

2
尽管这origin/HEAD可能不是问题,但是如果您不小心创建了一个称为origin/somebranchIS 的分支(这将导致相同的“模棱两可”的错误消息),那么这是一个问题。当您尝试从“ somebranch”进行拉取时,您最终会从本地(偶然)分支而不是从远程分支拉取。在那种情况下,我发现flickerfly的建议行之有效git branch -d origin/somebranch
machineghost 2012年

固定了,谢谢。值得注意的是,“ HEAD”分支是自动创建的,不是我创建的。它包含一个合并提交,我无法使用reflog恢复到干净状态。因此,我重命名了分支,删除了该分支,将我的“前1个”本地主服务器重新设置为原始服务器/主服务器,没有问题地进行了推送
Yunus Nedim Mehel 2015年

1
对于标签,不仅是分支,都可能发生同样的情况。
sebix'5

1
哈哈!我使用具有头部的机器人并创建了一个名为head(小写)的分支。
Orion elenzil

36

同样,如果您不想要它,它将删除该分支。

git branch -d HEAD

用大写-D字母强制删除:

git branch -D HEAD

3
但是它仍然会含糊不清,有没有办法清除它?
RzR 2011年

27

如果您创建了一个HEAD使用... 命名的标签

git tag HEAD

...您可以使用以下方法删除该标签:

git tag -d HEAD

看到这种情况:kerneltrap.org/git-tag HEAD


当您错误地添加名称为HEAD的标签时,就会发生这种情况,因此您必须按照此处的建议将其删除
user1610308 '19

1

这意味着您有一个名为“ head”的分支。我遇到了同样的问题,可以通过执行以下命令来解决。

git branch -d head

1

检查git存储库中可用的引用。您将在存储库中观察到两个HEAD。这使您的具有refname HEAD的分支不明确。

git show-ref

解:

  • 重命名分支

    git branch -m HEAD <new_branch_name>
    

    要么

  • 删除分支

    git branch -d HEAD
    
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.