Git:警告:refname'master'是不明确的
我看到有几个人在这里问同样的问题,但似乎他们的build议都不适用于我。 我得到了这个标题中的警告,但我没有任何标签名为“主”。 这是git branch -a
的结果git branch -a
:
* master remotes/origin/HEAD -> origin/master remotes/origin/master
任何想法在这里可能会出错? 我只用了几个月的时间,所以大部分时候我只是担心这个模糊不清可能会影响到未来的回购。
对于我来说,当我错误地发出“update-ref”命令时,我更早地追踪了这个警告的来源。 如果忘记在第一个参数中指定完整的refs / heads / mybranchnamepath,则会创build一个.git / mybranchname文件,当您尝试切换到该分支时会导致此警告。
它通过简单地删除.git / mybranchname来解决,例如:
rm .git/master
作为参考,update-ref命令的正确forms是:
git update-ref refs/heads/mybranchname mytargetbranch
不要忘记“refs / heads”部分!
此外,我最常见的update-ref用法是手动移动分支指向另一个提交,我发现一个更简单的语法:
git branch -f oldhashorbranchname newhashorbranchname
这个语法对我来说更简单,因为它不需要容易出错的refs / headspath限定符。
如“ Git:refname'master''中所详述的那样,这意味着除了heads/master
,您还可以在git仓库中拥有以下其中一个名称空间的主人:
refs/<refname> refs/tags/<refname> refs/heads/<refname> refs/remotes/<refname> refs/remotes/<refname>/HEAD
甚至还有./<refname>
,正如Magnus的回答中所提到的。