Git: warning: refname 'master' is ambiguous

前端 未结 5 2037
情书的邮戳
情书的邮戳 2020-12-07 17:15

I saw a few people asking the same question on here but it seems none of their advice is applicable to me. I\'m getting the warning that is in the title of this but I don\'t

相关标签:
5条回答
  • 2020-12-07 17:53

    I had a similar problem (not master) when I created a branch with the same name as a tag.

    This helped me remove the tag https://stackoverflow.com/a/5480292/150953

    git push --delete origin tagname
    
    0 讨论(0)
  • 2020-12-07 18:00

    For future reference, I had the same issue and what ended up to work for me was the solution described here. Basically, when you get Git: warning: refname 'xxx' is ambiguous warning, you can use: git show-ref xxx to check the references to xxx branch and validate which ones are having conflict.

    In my scenario, it was a tag named xxx and branch name with the same name. The tag had been made by mistake and was removed from server so all I needed to do was to update my local tag to match the server: git fetch -p -P. This command is explained in details here

    0 讨论(0)
  • 2020-12-07 18:03

    For me I tracked down the source of this warning to much earlier when I incorrectly issued an "update-ref" command. If you forget to specify the full refs/heads/mybranchname path in the first arg, then a file .git/mybranchname gets created, which later leads to this warning when you try to switch to that branch.

    It is solved by simply deleting the .git/mybranchname, eg:

    rm .git/master
    

    And for reference, the correct form for the update-ref command is:

    git update-ref refs/heads/mybranchname mytargetbranch
    

    Don't forget the "refs/heads" part!

    Also, my most common use-case for update-ref is simply manually moving a branch to point to another commit, which I've found a simpler syntax to do:

    git branch -f myBranchToMove destinationBranchOrHash

    This syntax is easier for me because it doesn't require that error-prone refs/heads path qualifier.

    0 讨论(0)
  • 2020-12-07 18:03

    As detailed in "Git: refname 'master' is ambiguous", that means that, beside heads/master, you have another master in one of the following namespace within the git repo:

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

    Or even ./<refname>, as mentioned in Magnus's answer.

    0 讨论(0)
  • 2020-12-07 18:09
    git fetch --prune
    
    git pull origin branch-name
    

    should fix your problem.

    0 讨论(0)
提交回复
热议问题