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 <phillip.wood123@xxxxxxxxx> 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