1git-branch(1) 2============= 3 4NAME 5---- 6git-branch - List, create, or delete branches 7 8SYNOPSIS 9-------- 10[verse] 11'git-branch' [--color | --no-color] [-r | -a] 12 [-v [--abbrev=<length> | --no-abbrev]] 13'git-branch' [--track | --no-track] [-l] [-f] <branchname> [<start-point>] 14'git-branch' (-m | -M) [<oldbranch>] <newbranch> 15'git-branch' (-d | -D) [-r] <branchname>... 16 17DESCRIPTION 18----------- 19With no arguments given a list of existing branches 20will be shown, the current branch will be highlighted with an asterisk. 21Option `-r` causes the remote-tracking branches to be listed, 22and option `-a` shows both. 23 24In its second form, a new branch named <branchname> will be created. 25It will start out with a head equal to the one given as <start-point>. 26If no <start-point> is given, the branch will be created with a head 27equal to that of the currently checked out branch. 28 29When a local branch is started off a remote branch, git can setup the 30branch so that gitlink:git-pull[1] will appropriately merge from that 31remote branch. If this behavior is desired, it is possible to make it 32the default using the global `branch.autosetupmerge` configuration 33flag. Otherwise, it can be chosen per-branch using the `--track` 34and `--no-track` options. 35 36With a '-m' or '-M' option, <oldbranch> will be renamed to <newbranch>. 37If <oldbranch> had a corresponding reflog, it is renamed to match 38<newbranch>, and a reflog entry is created to remember the branch 39renaming. If <newbranch> exists, -M must be used to force the rename 40to happen. 41 42With a `-d` or `-D` option, `<branchname>` will be deleted. You may 43specify more than one branch for deletion. If the branch currently 44has a reflog then the reflog will also be deleted. Use -r together with -d 45to delete remote-tracking branches. 46 47 48OPTIONS 49------- 50-d:: 51 Delete a branch. The branch must be fully merged. 52 53-D:: 54 Delete a branch irrespective of its index status. 55 56-l:: 57 Create the branch's reflog. This activates recording of 58 all changes made to the branch ref, enabling use of date 59 based sha1 expressions such as "<branchname>@\{yesterday}". 60 61-f:: 62 Force the creation of a new branch even if it means deleting 63 a branch that already exists with the same name. 64 65-m:: 66 Move/rename a branch and the corresponding reflog. 67 68-M:: 69 Move/rename a branch even if the new branchname already exists. 70 71--color:: 72 Color branches to highlight current, local, and remote branches. 73 74--no-color:: 75 Turn off branch colors, even when the configuration file gives the 76 default to color output. 77 78-r:: 79 List or delete (if used with -d) the remote-tracking branches. 80 81-a:: 82 List both remote-tracking branches and local branches. 83 84-v:: 85 Show sha1 and commit subject line for each head. 86 87--abbrev=<length>:: 88 Alter minimum display length for sha1 in output listing, 89 default value is 7. 90 91--no-abbrev:: 92 Display the full sha1s in output listing rather than abbreviating them. 93 94<branchname>:: 95 The name of the branch to create or delete. 96 The new branch name must pass all checks defined by 97 gitlink:git-check-ref-format[1]. Some of these checks 98 may restrict the characters allowed in a branch name. 99 100<start-point>:: 101 The new branch will be created with a HEAD equal to this. It may 102 be given as a branch name, a commit-id, or a tag. If this option 103 is omitted, the current branch is assumed. 104 105<oldbranch>:: 106 The name of an existing branch to rename. 107 108<newbranch>:: 109 The new name for an existing branch. The same restrictions as for 110 <branchname> applies. 111 112 113Examples 114-------- 115 116Start development off of a known tag:: 117+ 118------------ 119$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6 120$ cd my2.6 121$ git branch my2.6.14 v2.6.14 <1> 122$ git checkout my2.6.14 123------------ 124+ 125<1> This step and the next one could be combined into a single step with 126"checkout -b my2.6.14 v2.6.14". 127 128Delete unneeded branch:: 129+ 130------------ 131$ git clone git://git.kernel.org/.../git.git my.git 132$ cd my.git 133$ git branch -d -r origin/todo origin/html origin/man <1> 134$ git branch -D test <2> 135------------ 136+ 137<1> delete remote-tracking branches "todo", "html", "man" 138<2> delete "test" branch even if the "master" branch does not have all 139commits from test branch. 140 141 142Notes 143----- 144 145If you are creating a branch that you want to immediately checkout, it's 146easier to use the git checkout command with its `-b` option to create 147a branch and check it out with a single command. 148 149 150Author 151------ 152Written by Linus Torvalds <torvalds@osdl.org> and Junio C Hamano <junkio@cox.net> 153 154Documentation 155-------------- 156Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>. 157 158GIT 159--- 160Part of the gitlink:git[7] suite