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