Merge branch 'jc/fetch'
[gitweb.git] / Documentation / git-branch.txt
index a2a0cfb7bebb6ecb28fd0635c31d5004687a6bce..71ecd858aad06b88cd459af15751fd2b604c3271 100644 (file)
@@ -3,27 +3,67 @@ git-branch(1)
 
 NAME
 ----
-git-branch - Create a new branch.
+git-branch - Create a new branch, or remove an old one
 
 SYNOPSIS
 --------
-'git-branch' [<branchname> [start-point]]
+[verse]
+'git-branch' [[-f] <branchname> [<start-point>]]
+'git-branch' (-d | -D) <branchname>
 
 DESCRIPTION
 -----------
 If no argument is provided, show available branches and mark current
 branch with star. Otherwise, create a new branch of name <branchname>.
-
 If a starting point is also specified, that will be where the branch is
 created, otherwise it will be created at the current HEAD.
 
+With a `-d` or `-D` option, `<branchname>` will be deleted.
+
+
 OPTIONS
 -------
+-d::
+       Delete a branch. The branch must be fully merged.
+
+-D::
+       Delete a branch irrespective of its index status.
+
+-f::
+       Force a reset of <branchname> to <start-point> (or current head).
+
 <branchname>::
-       The name of the branch to create.
+       The name of the branch to create or delete.
+
+<start-point>::
+       Where to create the branch; defaults to HEAD. This
+       option has no meaning with -d and -D.
+
+
+Examples
+~~~~~~~~
+
+Start development off of a known tag::
++
+------------
+$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
+$ cd my2.6
+$ git branch my2.6.14 v2.6.14 <1>
+$ git checkout my2.6.14
+
+<1> These two steps are the same as "checkout -b my2.6.14 v2.6.14".
+------------
+
+Delete unneeded branch::
++
+------------
+$ git clone git://git.kernel.org/.../git.git my.git
+$ cd my.git
+$ git branch -D todo <1>
 
-start-point::
-       Where to make the branch; defaults to HEAD.
+<1> delete todo branch even if the "master" branch does not have all
+commits from todo branch.
+------------
 
 Author
 ------