Subject: Re: error: src refspec refs/heads/master matches more than one.

From: David Kastrup <[email-masked]>
Date: Fri, 14 Feb 2014 16:35:14 +0100

Josef Wolf <[email-masked]> writes:

> On Fri, Feb 14, 2014 at 07:59:18PM +0700, Duy Nguyen wrote:
>> On Fri, Feb 14, 2014 at 7:45 PM, Andreas Schwab <[email-masked]> wrote:
>> > Josef Wolf <[email-masked]> writes:
>> >
>> >> Notice the refs/heads _within_ refs/heads!
>> > Probably you did something like "git branch refs/heads/master".  You can
>> > remove it again with "git branch -d refs/heads/master".
>> As a porcelain, "git branch" should prevent (or at least warn) users
>> from creating such refs, I think.
>
> I don't think I did it the way Andreas thinks. This repository is maintained
> by a script, I don't create branches manually. The only command in this script
> that uses "heads" is
>
>   git symbolic-ref HEAD "refs/heads/$new_branch"
>
> to create new branches without any ancestry. And I double-checked that this
> command is _not_ resposible for those ghost branches.
>
> BTW: I see such ghost branches reappearing again and again, so it must be
>      something systematic.

You probably should check how $new_branch comes about.  Also, once a
directory refs/heads/refs/heads exists, "refs/heads/$new_branch" may
possibly be resolved as a branch with the name refs/heads/$new_branch.

-- 
David Kastrup