@@ -8,12 +8,14 @@ git-branch - List, create, or delete branches
88SYNOPSIS
99--------
1010[verse]
11- 'git branch' [--color[=<when>] | --no-color] [-r | -a ]
12- [--list] [--show-current] [- v [--abbrev=<length> | --no-abbrev]]
11+ 'git branch' [--color[=<when>] | --no-color] [--show-current ]
12+ [-v [--abbrev=<length> | --no-abbrev]]
1313 [--column[=<options>] | --no-column] [--sort=<key>]
1414 [(--merged | --no-merged) [<commit>]]
1515 [--contains [<commit]] [--no-contains [<commit>]]
16- [--points-at <object>] [--format=<format>] [<pattern>...]
16+ [--points-at <object>] [--format=<format>]
17+ [(-r | --remotes) | (-a | --all)]
18+ [--list] [<pattern>...]
1719'git branch' [--track | --no-track] [-f] <branchname> [<start-point>]
1820'git branch' (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
1921'git branch' --unset-upstream [<branchname>]
@@ -30,11 +32,15 @@ branches are listed; the current branch will be highlighted in green and
3032marked with an asterisk. Any branches checked out in linked worktrees will
3133be highlighted in cyan and marked with a plus sign. Option `-r` causes the
3234remote-tracking branches to be listed,
33- and option `-a` shows both local and remote branches. If a `<pattern>`
35+ and option `-a` shows both local and remote branches.
36+
37+ If a `<pattern>`
3438is given, it is used as a shell wildcard to restrict the output to
3539matching branches. If multiple patterns are given, a branch is shown if
36- it matches any of the patterns. Note that when providing a
37- `<pattern>`, you must use `--list`; otherwise the command is interpreted
40+ it matches any of the patterns.
41+
42+ Note that when providing a
43+ `<pattern>`, you must use `--list`; otherwise the command may be interpreted
3844as branch creation.
3945
4046With `--contains`, shows only the branches that contain the named commit
@@ -155,10 +161,12 @@ This option is only applicable in non-verbose mode.
155161-r::
156162--remotes::
157163 List or delete (if used with -d) the remote-tracking branches.
164+ Combine with `--list` to match the optional pattern(s).
158165
159166-a::
160167--all::
161168 List both remote-tracking branches and local branches.
169+ Combine with `--list` to match optional pattern(s).
162170
163171-l::
164172--list::
@@ -326,6 +334,18 @@ $ git branch -D test <2>
326334<2> Delete the "test" branch even if the "master" branch (or whichever branch
327335 is currently checked out) does not have all commits from the test branch.
328336
337+ Listing branches from a specific remote::
338+ +
339+ ------------
340+ $ git branch -r -l '<remote>/<pattern>' <1>
341+ $ git for-each-ref 'refs/remotes/<remote>/<pattern>' <2>
342+ ------------
343+ +
344+ <1> Using `-a` would conflate <remote> with any local branches you happen to
345+ have been prefixed with the same <remote> pattern.
346+ <2> `for-each-ref` can take a wide range of options. See linkgit:git-for-each-ref[1]
347+
348+ Patterns will normally need quoting.
329349
330350NOTES
331351-----
0 commit comments