Git错误:refname'HEAD'含糊不清

时间:2014-01-24 15:09:05

标签: git

我对git很新。目前,我尝试按照本教程使用分支名称和版本覆盖我的应用图标:http://www.merowing.info/2013/03/overlaying-application-version-on-top-of-your-icon/

执行

时出现错误
git rev-parse --abbrev-ref HEAD
warning: refname 'HEAD' is ambiguous.
error: refname 'HEAD' is ambiguous
谷歌提出了一些结果,表明当有一个名为“HEAD”的分支时会发生这种情况 - 但我不认为是这种情况。至少在bitbucket的在线存储库中,我没有看到任何标记为“HEAD”的分支并通过终端查询产生:

git branch -r
origin/#224-Push-notifications
origin/1.0.2
origin/HEAD -> origin/master
origin/app-forced-update
origin/master
origin/milestone6
origin/staging


git branch
* #224-Push-notifications
1.0.2
HEAD
master
milestone3
milestone4
milestone5
milestone6

不确定为什么在远程HEAD上有一个 - >而在当地的HEAD则没有。也许这就是问题?

另外,在.git文件夹中搜索HEAD会产生

find .git -name HEAD
.git/HEAD
.git/logs/HEAD
.git/logs/refs/heads/HEAD
.git/logs/refs/remotes/origin/HEAD
.git/refs/heads/HEAD
.git/refs/remotes/origin/HEAD

任何人都明白问题是什么以及如何彻底解决它?

3 个答案:

答案 0 :(得分:2)

你有一个名为HEAD的本地分支,所以git不知道你是指那个还是HEAD,这是当前分支中的最新提交。命名分支HEAD不是一个好主意,因此您应该删除它:git branch -D HEAD。这将解决转速分析错误。

远程分支中的

origin/HEAD -> origin/master是一个特定于远程的东西,这意味着当您从远程克隆时,将检出主分支。

答案 1 :(得分:2)

git branch的结果显示您有一个名为HEAD的分支。看起来你是从原产地继承的。

您可以使用

安全地将其从副本中删除
git branch -d HEAD

答案 2 :(得分:0)

它认为本地是远程的副本,它总是当前标记为HEAD。如果不是它不知道如何对待它。本地或从远程拉。 您可以通过

更改本地HEAD的名称
git branch -m HEAD newbranch