Reputation: 2001
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
Reputation: 788
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
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
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