From: Phillip Wood Date: Tue, 14 Nov 2023 15:02:04 GMT Subject: Re: Feature request: git status --branch-only Message-ID: <00033c86-dbd7-4c88-bfbd-8f6766cd66c9@gmail.com> In-Reply-To: Hi Ondra On 14/11/2023 12:40, Ondra Medek wrote: > 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 Oh dear, that's a shame. I wonder if it is a bug because the documentation says that --format="%(upstream:track)" should print "[gone]" whenever an unknown upstream ref is encountered but trying that on a clone of an empty repository gives no output. Best Wishes Phillip > 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 wrote: >> >> 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 >