Andrew J
Andrew J

Reputation: 2001

Error on branch creation: "warning: refname 'master' is ambiguous."

I've had simple project being managed in a Git repository. To date I haven't intentionally created any branches, but when I tried to create my first today using

$ git branch mybranch

I see this error:

warning: refname 'master' is ambiguous.
fatal: Ambiguous object name: 'master'.

Digging deeper:

$ git branch -a          
* master
remotes/master/HEAD -> master/master
remotes/master/master

Is this normal to see in Git? Have I cloned my repository incorrectly? What is the best way to resolve this problem?

Upvotes: 10

Views: 12281

Answers (3)

In my case HEAD branch was ambiguous and solved by deleting local branch using

git branch -d HEAD

may need to push changes before not to lose changes

Upvotes: 0

Chris Johnsen
Chris Johnsen

Reputation: 224591

The rules for how revision specifications are interpreted are given in gitrevisions(7) (referenced from git(1), among other bits of documentation).

In short, master matches two patterns when applied to the refs in your repository: a local branch (refs/heads/<name>) and the default remote-tracking branch of a remote (refs/remotes/<name>/HEAD).

These can be disambiguated by using heads/master for the local branch and master/HEAD (or master/master in your case) for the remote-tracking branch.

As Andrew Marshall mentions, you might want to rename your remote to avoid having to disambiguate in the first place.

Upvotes: 6

Andrew Marshall
Andrew Marshall

Reputation: 96914

It seems it's ambiguous because your remote name and branch name are both master. You can try renaming the remote to the more conventional origin by running

git remote rename master origin

Upvotes: 13

Related Questions