unsupported
  ,   ˆl–Ðz¾”ËmJeAàq¶ÔÅ£¿„_‡I|¥ŠèªÂÄ '{    git-branch(1)
=============

NAME
----
git-branch - List, create, or delete branches

SYNOPSIS
--------
[verse]
'git branch' [--color[=<when>] | --no-color] [-r | -a]
	[--list] [-v [--abbrev=<length> | --no-abbrev]]
	[--column[=<options>] | --no-column]
	[(--merged | --no-merged | --contains) [<commit>]] [<pattern>...]
'git branch' [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
'git branch' (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
'git branch' --unset-upstream [<branchname>]
'git branch' (-m | -M) [<oldbranch>] <newbranch>
'git branch' (-d | -D) [-r] <branchname>...
'git branch' --edit-description [<branchname>]

DESCRIPTION
-----------

If `--list` is given, or if there are no non-option arguments, existing
branches are listed; the current branch will be highlighted with an
asterisk.  Option `-r` causes the remote-tracking branches to be listed,
and option `-a` shows both local and remote branches. If a `<pattern>`
is given, it is used as a shell wildcard to restrict the output to
matching branches. If multiple patterns are given, a branch is shown if
it matches any of the patterns.  Note that when providing a
`<pattern>`, you must use `--list`; otherwise the command is interpreted
as branch creation.

With `--contains`, shows only the branches that contain the named commit
(in other words, the branches whose tip commits are descendants of the
named commit).  With `--merged`, only branches merged into the named
commit (i.e. the branches whose tip commits are reachable from the named
commit) will be listed.  With `--no-merged` only branches not merged into
the named commit will be listed.  If the <commit> argument is missing it
defaults to 'HEAD' (i.e. the tip of the current branch).

The command's second form creates a new branch head named <branchname>
which points to the current 'HEAD', or <start-point> if given.

Note that this will create the new branch, but it will not switch the
working tree to it; use "git checkout <newbranch>" to switch to the
new branch.

When a local branch is started off a remote-tracking branch, Git sets up the
branch so that 'git pull' will appropriately merge from
the remote-tracking branch. This behavior may be changed via the global
`branch.autosetupmerge` configuration flag. That setting can be
overridden by using the `--track` and `--no-track` options, and
changed later using `git branch --set-upstream-to`.

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
to happen.

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
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
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`.

-D::
	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}".
	Note that in non-bare repositories, reflogs are usually
	enabled by default by the `core.logallrefupdates` config option.

-f::
--force::
	Reset <branchname> to <startpoint> if <branchname> exists
	already. Without `-f` 'git branch' refuses to change an existing branch.

-m::
--move::
	Move/rename a branch and 