Code

Merge branch 'maint'
[git.git] / Documentation / git-branch.txt
index 507b8d0ab2a2d524a607c5b91e6d17f6d2f36392..6410c3d34545ce9bf191ffe91bbf8fd77cfc9b7e 100644 (file)
@@ -9,18 +9,23 @@ SYNOPSIS
 --------
 [verse]
 'git branch' [--color[=<when>] | --no-color] [-r | -a]
-       [-v [--abbrev=<length> | --no-abbrev]]
-       [(--merged | --no-merged | --contains) [<commit>]]
+       [--list] [-v [--abbrev=<length> | --no-abbrev]]
+       [(--merged | --no-merged | --contains) [<commit>]] [<pattern>...]
 'git branch' [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
 'git branch' (-m | -M) [<oldbranch>] <newbranch>
 'git branch' (-d | -D) [-r] <branchname>...
+'git branch' --edit-description [<branchname>]
 
 DESCRIPTION
 -----------
 
 With no arguments, existing branches are listed and the current branch will
 be highlighted with an asterisk.  Option `-r` causes the remote-tracking
-branches to be listed, and option `-a` shows both.
+branches to be listed, and option `-a` shows both. This list mode is also
+activated by the `--list` option (see below).
+<pattern> restricts the output to matching branches, the pattern is a shell
+wildcard (i.e., matched using fnmatch(3)).
+Multiple patterns may be given; if any of them matches, the branch is shown.
 
 With `--contains`, shows only the branches that contain the named commit
 (in other words, the branches whose tip commits are descendants of the
@@ -44,7 +49,7 @@ the remote-tracking branch. This behavior may be changed via the global
 overridden by using the `--track` and `--no-track` options, and
 changed later using `git branch --set-upstream`.
 
-With a '-m' or '-M' option, <oldbranch> will be renamed to <newbranch>.
+With a `-m` or `-M` option, <oldbranch> will be renamed to <newbranch>.
 If <oldbranch> had a corresponding reflog, it is renamed to match
 <newbranch>, and a reflog entry is created to remember the branch
 renaming. If <newbranch> exists, -M must be used to force the rename
@@ -54,7 +59,7 @@ With a `-d` or `-D` option, `<branchname>` will be deleted.  You may
 specify more than one branch for deletion.  If the branch currently
 has a reflog then the reflog will also be deleted.
 
-Use -r together with -d to delete remote-tracking branches. Note, that it
+Use `-r` together with `-d` to delete remote-tracking branches. Note, that it
 only makes sense to delete remote-tracking branches if they no longer exist
 in the remote repository or if 'git fetch' was configured not to fetch
 them again. See also the 'prune' subcommand of linkgit:git-remote[1] for a
@@ -64,6 +69,7 @@ way to clean up all obsolete remote-tracking branches.
 OPTIONS
 -------
 -d::
+--delete::
        Delete a branch. The branch must be fully merged in its
        upstream branch, or in `HEAD` if no upstream was set with
        `--track` or `--set-upstream`.
@@ -72,6 +78,7 @@ OPTIONS
        Delete a branch irrespective of its merged status.
 
 -l::
+--create-reflog::
        Create the branch's reflog.  This activates recording of
        all changes made to the branch ref, enabling use of date
        based sha1 expressions such as "<branchname>@\{yesterday}".
@@ -84,6 +91,7 @@ OPTIONS
        already. Without `-f` 'git branch' refuses to change an existing branch.
 
 -m::
+--move::
        Move/rename a branch and the corresponding reflog.
 
 -M::
@@ -100,14 +108,21 @@ OPTIONS
        Same as `--color=never`.
 
 -r::
+--remotes::
        List or delete (if used with -d) the remote-tracking branches.
 
 -a::
+--all::
        List both remote-tracking branches and local branches.
 
+--list::
+       Activate the list mode. `git branch <pattern>` would try to create a branch,
+       use `git branch --list <pattern>` to list matching branches.
+
 -v::
 --verbose::
-       Show sha1 and commit subject line for each head, along with
+       When in list mode,
+       show sha1 and commit subject line for each head, along with
        relationship to upstream branch (if any). If given twice, print
        the name of the upstream branch, as well.
 
@@ -139,13 +154,18 @@ start-point is either a local or remote-tracking branch.
        branch.autosetupmerge configuration variable is true.
 
 --set-upstream::
-       If specified branch does not exist yet or if '--force' has been
-       given, acts exactly like '--track'. Otherwise sets up configuration
-       like '--track' would when creating the branch, except that where
+       If specified branch does not exist yet or if `--force` has been
+       given, acts exactly like `--track`. Otherwise sets up configuration
+       like `--track` would when creating the branch, except that where
        branch points to is not changed.
 
---contains <commit>::
-       Only list branches which contain the specified commit.
+--edit-description::
+       Open an editor and edit the text to explain what the branch is
+       for, to be used by various other commands (e.g. `request-pull`).
+
+--contains [<commit>]::
+       Only list branches which contain the specified commit (HEAD
+       if not specified).
 
 --merged [<commit>]::
        Only list branches whose tips are reachable from the