Re: Feature request: git status --branch-only
- From
Ondra Medek <xmedeko@gmail.com>
- Date
- Nov 14, 2023, 12:40 UTC
- Message-ID
- <CAJsoDaHX3t9bViq0F7gmJPD+PoE-ZqmJS5h=u-W900x9KEMmYA@mail.gmail.com>
- In-Reply-To
- <47fa8400-1e5f-437f-84b8-50bb09580325@gmail.com>
Hi Phillip,
it does not work for a fresh clone of an empty repository
git for-each-ref --format="%(upstream:short)" refs/heads/master
outputs nothing, while
git status -b --no-ahead-behind --porcelain=v2
outputs
# branch.oid (initial) # branch.head master # branch.upstream origin/master
I.e. it outputs a proper upstream branch.
Best regards Ondra
Ondra Medek
On Tue, 14 Nov 2023 at 13:28, Phillip Wood <phillip.wood123@gmail.com> wrote:
Show 26 quoted lines
> > Hi Ondra > > On 14/11/2023 10:16, Ondra Medek wrote: > > Hello, > > I am working on a tol which should fetch changes from a remote > > repository on a user click. I want to limit fetch on the current > > remote tracking branch (something like "origin/master"), but > > surprisingly, it's hard to get it for all corner cases like a fresh > > clone of an empty repository or detached head, etc. E.g see this SO > > thread https://stackoverflow.com/questions/171550/find-out-which-remote-branch-a-local-branch-is-tracking/52896538 > > I think you can do this by calling > > git symbolic-ref --quiet HEAD > > to get the full refname of the current branch. If HEAD is detached it > will print nothing and exit with exit code 1. Then you can call > > git for-each-ref --format="%(upstream:short)" $refname > > to get the upstream branch > > Best Wishes > > Phillip