threads / discuss / 52623

Fwd: Issue with Git Branch

Subject: Fwd: Issue with Git Branch

## tl;dr

5 messages between Jan 13, 2020 and Jan 13, 2020.

replies: 4people: 3as markdown or json

Jude Guan Wang· Jan 13, 2020, 00:01 UTC · lore
Hi, all:
	I noticed something weird with my git command. In my local environment I seem to have a branch named `-D`:
	And I don’t remember how I was able to create a branch like that. I tried to do git branch -D/-d this branch but seems not working. I’m assuming the branch infos were kept in .git folder so my question is if there’s anyway I could remove this invalid branch from that folder? My git version is 2.24.0. Thanks for any help in advance.
Taylor Blau· Jan 13, 2020, 00:11 UTC · re: Jude Guan Wang · lore

Re: Fwd: Issue with Git Branch

Hi Jude,
On Sun, Jan 12, 2020 at 07:01:04PM -0500, Jude Guan Wang wrote:
Show 9 quoted lines
> Hi, all:
> 	I noticed something weird with my git command. In my local
> 	environment I seem to have a branch named `-D`:
>
> 	And I don’t remember how I was able to create a branch like that. I
> 	tried to do git branch -D/-d this branch but seems not working. I’m
> 	assuming the branch infos were kept in .git folder so my question is
> 	if there’s anyway I could remove this invalid branch from that
> 	folder? My git version is 2.24.0. Thanks for any help in advance.

You can delete oddly-named branches by passing the end-of-options marker to 'git branch', like so:

  $ git branch -D --end-of-options -D

(In fact, '--end-of-options' isn't strictly necessary here, and using '--' as in 'git branch -D -- -D' will work as well).

If you do find a reproducible way to create branches named '-D' or similar, please do let us know, as these are not intended to be valid branch names in general.

Thanks, Taylor

SZEDER Gábor· Jan 13, 2020, 00:42 UTC · re: Taylor Blau · lore

Re: Fwd: Issue with Git Branch

On Sun, Jan 12, 2020 at 04:11:43PM -0800, Taylor Blau wrote:
Show 5 quoted lines
> On Sun, Jan 12, 2020 at 07:01:04PM -0500, Jude Guan Wang wrote:
> > 	I noticed something weird with my git command. In my local
> > 	environment I seem to have a branch named `-D`:
> >
> > 	And I don’t remember how I was able to create a branch like that.
> If you do find a reproducible way to create branches named '-D' or
> similar, please do let us know, as these are not intended to be valid
> branch names in general.
  $ git update-ref refs/heads/-D master
  $ git branch |head -n1
    -D
Taylor Blau· Jan 13, 2020, 00:48 UTC · re: SZEDER Gábor · lore

Re: Fwd: Issue with Git Branch

On Mon, Jan 13, 2020 at 01:42:35AM +0100, SZEDER Gábor wrote:
Show 14 quoted lines
> On Sun, Jan 12, 2020 at 04:11:43PM -0800, Taylor Blau wrote:
> > On Sun, Jan 12, 2020 at 07:01:04PM -0500, Jude Guan Wang wrote:
> > > 	I noticed something weird with my git command. In my local
> > > 	environment I seem to have a branch named `-D`:
> > >
> > > 	And I don’t remember how I was able to create a branch like that.
>
> > If you do find a reproducible way to create branches named '-D' or
> > similar, please do let us know, as these are not intended to be valid
> > branch names in general.
>
>   $ git update-ref refs/heads/-D master
>   $ git branch |head -n1
>     -D

I was assuming that Jude had gotten the ref to appear by using 'git branch' alone, i.e., without the help of 'git update-ref' or 'cp .git/refs/heads/{master,-D}'.

Thanks, Taylor

SZEDER Gábor· Jan 13, 2020, 11:26 UTC · re: Taylor Blau · lore

Re: Fwd: Issue with Git Branch

On Sun, Jan 12, 2020 at 04:48:14PM -0800, Taylor Blau wrote:
Show 19 quoted lines
> On Mon, Jan 13, 2020 at 01:42:35AM +0100, SZEDER Gábor wrote:
> > On Sun, Jan 12, 2020 at 04:11:43PM -0800, Taylor Blau wrote:
> > > On Sun, Jan 12, 2020 at 07:01:04PM -0500, Jude Guan Wang wrote:
> > > > 	I noticed something weird with my git command. In my local
> > > > 	environment I seem to have a branch named `-D`:
> > > >
> > > > 	And I don’t remember how I was able to create a branch like that.
> >
> > > If you do find a reproducible way to create branches named '-D' or
> > > similar, please do let us know, as these are not intended to be valid
> > > branch names in general.
> >
> >   $ git update-ref refs/heads/-D master
> >   $ git branch |head -n1
> >     -D
> 
> I was assuming that Jude had gotten the ref to appear by using 'git
> branch' alone, i.e., without the help of 'git update-ref' or 'cp
> .git/refs/heads/{master,-D}'.

On a somewhat related note, while trying whether I could "inadvertently" create such a branch with gitk I stumbled upon this bit of weirdness:

  $ git rev-parse v2.24.0^{commit}
  da72936f544fec5a335e66432610e4cef4430991
  $ git branch da72936f544fec5a335e66432610e4cef4430991 v2.24.0
  $ gitk -1 v2.24.0

(While starting up gitk might show a popup warning about the branch with 40 hexdigit name, close it.)

So now gitk displays a commit with the v2.24.0 tag and the da7293... branch pointing to it. Right click on the commit's subject line, select "Create new branch" from the context menu. Enter "-D" as the name of the new branch, and click Create. Now gitk displays a "-D" branch pointing to the same commit as well, but it's only a display thing, as it did not actually create that branch, because it carelessly run the 'git branch -D da7293...' command... After refreshing with F5 it won't display the da7293... and "-D" branches.

← back to recent threads