警告:refname'HEAD'含糊不清

dag*_*da1 135 git

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

warning: refname 'HEAD' is ambiguous.
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

warning: refname 'HEAD' is ambiguous.
From github.com:dagda1/hornget
 * branch            master     -> FETCH_HEAD
warning: refname 'HEAD' is ambiguous.
warning: refname 'HEAD' is ambiguous.
Run Code Online (Sandbox Code Playgroud)

如果我执行 git branch -a

我得到以下内容:

HEAD
* master
remotes/emmekappa/master
remotes/origin/HEAD -> origin/master
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

我很困惑remotes/origin/HEAD -> origin/master.

这是什么以及如何摆脱模棱两可的分支.

我通过执行合并到达这个阶段,我认为我添加了模糊的分支.

u0b*_*6ae 211

问题是你有一个被称为分支的分支HEAD是绝对危险的,因为那是当前分支的任何分支的符号名称.

重命名:

git branch -m HEAD newbranch
Run Code Online (Sandbox Code Playgroud)

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

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

  • 同样的情况也可能发生在标签上,而不仅仅是分支。 (3认同)
  • 虽然`origin/HEAD`可能不是问题,但是如果你不小心创建一个名为`origin/somebranch`的分支是一个问题(并且会导致相同的"模糊"错误消息).当您尝试从"somebranch"拉出时,您将从当地(意外)分支而不是遥控器上拉出来.在那种情况下,我发现flickerfly建议做`git branch -d origin/somebranch`很有效. (2认同)

Jos*_*iah 35

此外,如果您不想要它,这将删除分支.

git branch -d HEAD
Run Code Online (Sandbox Code Playgroud)

使用资本-D强制删除:

git branch -D HEAD
Run Code Online (Sandbox Code Playgroud)

  • 但它仍然会保持暧昧,有没有办法清除它? (3认同)

Ben*_*ngt 27

如果您创建了一个名为HEADusing 的标签

git tag HEAD
Run Code Online (Sandbox Code Playgroud)

...您可以使用以下命令删除该标记:

git tag -d HEAD
Run Code Online (Sandbox Code Playgroud)

看这个案例:kerneltrap.org/git-tag HEAD


小智 5

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

git show-ref
Run Code Online (Sandbox Code Playgroud)

解决方案: