8
SYNOPSIS
9
--------
10
[verse]
11
-'git branch' [--color[=<when>] | --no-color] [-r | -a]
12
- [--list] [-v [--abbrev=<length> | --no-abbrev]]
11
+'git branch' [--color[=<when>] | --no-color]
12
+ [-v [--abbrev=<length> | --no-abbrev]]
13
[--column[=<options>] | --no-column] [--sort=<key>]
14
[(--merged | --no-merged) [<commit>]]
15
[--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>...]
19
'git branch' [--track | --no-track] [-f] <branchname> [<start-point>]
20
'git branch' (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
21
'git branch' --unset-upstream [<branchname>]
30
If `--list` is given, or if there are no non-option arguments, existing
31
branches are listed; the current branch will be highlighted with an
32
asterisk. Option `-r` causes the remote-tracking branches to be listed,
31
-and option `-a` shows both local and remote branches. If a `<pattern>`
33
+and option `-a` shows both local and remote branches.
34
+
35
+If a `<pattern>`
36
is given, it is used as a shell wildcard to restrict the output to
37
matching branches. If multiple patterns are given, a branch is shown if
34
-it matches any of the patterns. Note that when providing a
35
-`<pattern>`, you must use `--list`; otherwise the command is interpreted
38
+it matches any of the patterns.
39
+
40
+Note that when providing a
41
+`<pattern>`, you must use `--list`; otherwise the command may be interpreted
42
as branch creation.
43
44
With `--contains`, shows only the branches that contain the named commit
155
-r::
156
--remotes::
157
List or delete (if used with -d) the remote-tracking branches.
158
+ Combine with `--list` to match the optional pattern(s).
159
160
-a::
161
--all::
162
List both remote-tracking branches and local branches.
163
+ Combine with `--list` to match optional pattern(s).
164
165
-l::
166
--list::
322
<2> Delete the "test" branch even if the "master" branch (or whichever branch
323
is currently checked out) does not have all commits from the test branch.
324
325
+Listing branches from a specific remote::
326
++
327
+------------
328
+$ git branch -r -l '<remote>/<pattern>' <1>
329
+$ git for-each-ref 'refs/remotes/<remote>/<pattern>' <2>
330
+------------
331
++
332
+<1> Using `-a` would conflate <remote> with any local branches you happen to
333
+ have been prefixed with the same <remote> pattern.
334
+<2> `for-each-ref` can take a wide range of options. See linkgit:git-for-each-ref[1]
335
+
336
+Patterns will normally need quoting.
337
338
NOTES
339
-----