# Feature request: status could list ref names after "HEAD detached"

3 messages from 2024-03-21 to 2024-03-22. Participants: M Hickford, Junio C Hamano.
Thread: https://gitlist.dev/t/61170

## M Hickford, 2024-03-21 08:00

Subject: Feature request: status could list ref names after "HEAD detached"
Message-ID: <CAGJzqs=ULaHwttY1jRaW4ZT0tGeSW2S_gcEw=tMrY+i26Jy1gA@mail.gmail.com>
URL: https://gitlist.dev/e/CAGJzqs%3DULaHwttY1jRaW4ZT0tGeSW2S_gcEw%3DtMrY%2Bi26Jy1gA%40mail.gmail.com

```
I frequently run `git status`. Sometimes HEAD is detached:

    HEAD detached at ea601b57e

It would be neat to include ref names here, similar to git log:

    HEAD detached at ea601b57e (origin/main, origin/HEAD, main)

This gives me more information before I create a new branch or switch branch.

```

## Junio C Hamano, 2024-03-21 19:20

Subject: Re: Feature request: status could list ref names after "HEAD detached"
Message-ID: <xmqq5xxf8k9r.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqq5xxf8k9r.fsf%40gitster.g
In-Reply-To: <CAGJzqs=ULaHwttY1jRaW4ZT0tGeSW2S_gcEw=tMrY+i26Jy1gA@mail.gmail.com>

```
M Hickford <mirth.hickford@gmail.com> writes:

> I frequently run `git status`. Sometimes HEAD is detached:
>
>     HEAD detached at ea601b57e
>
> It would be neat to include ref names here, similar to git log:
>
>     HEAD detached at ea601b57e (origin/main, origin/HEAD, main)
>
> This gives me more information before I create a new branch or switch branch.

This has already moved away from the original "I want to know on
which branch other worktrees are working" feature, but while we are
expanding the edges...

I wonder what you want to see when a detached HEAD deviated from its
initial position (i.e., when we say "HEAD detached from", not "HEAD
detached at", in "git status" output).  Would we still want to show
the "--decorate" list of existing refs for the original position?

    $ git checkout --detach master
    $ git status | head -n1
    HEAD detached at 3bd955d269
    $ git checkout --allow-empty -m empty
    $ git status | head -n1
    HEAD detached from 3bd955d269
    $ git reset --hard HEAD^
    $ git status | head -n1
    HEAD detached at 3bd955d269

If we add "(master)" after 3bd955d269 in the above illustration, I
wonder if it makes it too misleading.

```

## M Hickford, 2024-03-22 15:00

Subject: Re: Feature request: status could list ref names after "HEAD detached"
Message-ID: <CAGJzqskywQhaaG+HPWiLDqtrUE3+Zb0XuGdheJaHJMS7LqJ9xA@mail.gmail.com>
URL: https://gitlist.dev/e/CAGJzqskywQhaaG%2BHPWiLDqtrUE3%2BZb0XuGdheJaHJMS7LqJ9xA%40mail.gmail.com
In-Reply-To: <xmqq5xxf8k9r.fsf@gitster.g>

```
On Thu, 21 Mar 2024 at 19:20, Junio C Hamano <gitster@pobox.com> wrote:
>
> M Hickford <mirth.hickford@gmail.com> writes:
>
> > I frequently run `git status`. Sometimes HEAD is detached:
> >
> >     HEAD detached at ea601b57e
> >
> > It would be neat to include ref names here, similar to git log:
> >
> >     HEAD detached at ea601b57e (origin/main, origin/HEAD, main)
> >
> > This gives me more information before I create a new branch or switch branch.
>
> This has already moved away from the original "I want to know on
> which branch other worktrees are working" feature, but while we are
> expanding the edges...
>
> I wonder what you want to see when a detached HEAD deviated from its
> initial position (i.e., when we say "HEAD detached from", not "HEAD
> detached at", in "git status" output).  Would we still want to show
> the "--decorate" list of existing refs for the original position?
>
>     $ git checkout --detach master
>     $ git status | head -n1
>     HEAD detached at 3bd955d269
>     $ git checkout --allow-empty -m empty
>     $ git status | head -n1
>     HEAD detached from 3bd955d269
>     $ git reset --hard HEAD^
>     $ git status | head -n1
>     HEAD detached at 3bd955d269
>
> If we add "(master)" after 3bd955d269 in the above illustration, I
> wonder if it makes it too misleading.

Interesting. I hadn't appreciated the difference between "HEAD
detached at" and "HEAD detached from". In the 'from' case, it'd be
informative to see some measure of distance from the original
position:

HEAD detached from 3bd955d269 (HEAD~1)
HEAD detached [ahead 1] from 3bd955d269

Decorated with refs:

HEAD detached from 3bd955d269 (HEAD~1, master)
HEAD detached [ahead 1] from 3bd955d269 (master)

```
