Git:警告:refname'master'含糊不清

我看到有几个人在这里问同样的问题,但似乎他们的建议都不适用于我。 我收到了这个标题中的警告,但是我没有任何标签名为“master”。 这是git branch -a的结果git branch -a

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

任何想法在这里可能会出错? 我现在只用了几个月的git,所以大多数时候我都担心这种模糊可能会混淆未来的回购。


对于我来说,当我错误地发布“update-ref”命令时,我更早地追踪了此警告的来源。 如果忘记在第一个参数中指定完整的refs / heads / mybranchname路径,则会创建一个.git / mybranchname文件,当您尝试切换到该分支时,会导致此警告。

它通过简单地删除.git / mybranchname来解决,例如:

rm .git/master

作为参考,update-ref命令的正确形式是:

git update-ref refs/heads/mybranchname mytargetbranch

不要忘记“refs / heads”部分!

另外,update-ref最常见的用例是简单地手动移动分支指向另一个提交,我发现这个提交的语法更简单:

git branch -f myBranchToMove destinationBranchOrHash

这个语法对我来说比较容易,因为它不需要容易出错的refs / heads路径限定符。


正如在详细“混帐:refname‘ master ’不明确”,这意味着,旁边heads/master ,你有另一个主在混帐回购协议中的以下命名空间中的一种:

refs/<refname> 
refs/tags/<refname>
refs/heads/<refname>
refs/remotes/<refname>
refs/remotes/<refname>/HEAD

或者甚至是./<refname> ,如Magnus的回答中所述。


git fetch --prune

git pull origin branch-name

应该解决你的问题。

链接地址: http://www.djcxy.com/p/16015.html

上一篇: Git: warning: refname 'master' is ambiguous

下一篇: Cannot delete remote branch in git