I can view the "remote" tracking branches (ex: upstream/main) by running:
git branch -vv
As an example:
$ git branch -vv
testing-s3 f08dcfa s3 check testing
main 688f70b [remote-two/main] [OS-999] Fix regional issue 17
* release-22 468f72c [upstream/release-22] adapt region against main fork
branch-test b490963 [origin/branch-test] Grant only explicit strings
So, for the above example, main is tracking remote-two/main ^^
I need to programmatically (one liner preferred) get the remote tracking branch of a specific branch.
So, using the above example if I pass "main", the command/script would return the string remote-two/main -- how can I do this?
I was thinking something like git branch -vv | grep main | cut ...., however grep won't work since there is no guarantee the string isn't found elsewhere. Such as my above example that has the word "main" in the comments of a different branch.
CodePudding user response:
Use the --list option to select the desired branch and the --format option to customize the output to only contain the tracking information:
$ git branch --format "%(upstream:short)" --list main
remote-two/main
See the documentation for further ways of customizing the output.
