Junio C Hamano | 215a7ad | 2005-09-07 17:26:23 -0700 | [diff] [blame] | 1 | git-branch(1) |
| 2 | ============= |
Junio C Hamano | 7fc9d69 | 2005-08-23 01:49:47 -0700 | [diff] [blame] | 3 | |
| 4 | NAME |
| 5 | ---- |
Sean Estabrooks | 2eaf273 | 2006-04-28 09:15:04 -0400 | [diff] [blame] | 6 | git-branch - List, create, or delete branches. |
Junio C Hamano | 7fc9d69 | 2005-08-23 01:49:47 -0700 | [diff] [blame] | 7 | |
| 8 | SYNOPSIS |
| 9 | -------- |
Jon Loeliger | dd18111 | 2006-03-17 18:24:37 -0600 | [diff] [blame] | 10 | [verse] |
Brian Gernhardt | f367398 | 2007-01-03 10:36:29 -0500 | [diff] [blame] | 11 | 'git-branch' [--color | --no-color] [-r | -a] [-v [--abbrev=<length>]] |
Shawn Pearce | 3a4b3f2 | 2006-05-19 05:16:58 -0400 | [diff] [blame] | 12 | 'git-branch' [-l] [-f] <branchname> [<start-point>] |
Lars Hjemli | c976d41 | 2006-11-28 15:47:40 +0100 | [diff] [blame] | 13 | 'git-branch' (-m | -M) [<oldbranch>] <newbranch> |
Quy Tonthat | 7dda22e | 2006-12-21 15:18:07 +1100 | [diff] [blame] | 14 | 'git-branch' (-d | -D) [-r] <branchname>... |
Junio C Hamano | 7fc9d69 | 2005-08-23 01:49:47 -0700 | [diff] [blame] | 15 | |
| 16 | DESCRIPTION |
| 17 | ----------- |
Andy Parkins | bfcc921 | 2006-11-21 19:31:24 +0000 | [diff] [blame] | 18 | With no arguments given a list of existing branches |
Sean Estabrooks | 2eaf273 | 2006-04-28 09:15:04 -0400 | [diff] [blame] | 19 | will be shown, the current branch will be highlighted with an asterisk. |
Andy Parkins | bfcc921 | 2006-11-21 19:31:24 +0000 | [diff] [blame] | 20 | Option `-r` causes the remote-tracking branches to be listed, |
| 21 | and option `-a` shows both. |
Junio C Hamano | 7fc9d69 | 2005-08-23 01:49:47 -0700 | [diff] [blame] | 22 | |
Sean Estabrooks | 2eaf273 | 2006-04-28 09:15:04 -0400 | [diff] [blame] | 23 | In its second form, a new branch named <branchname> will be created. |
| 24 | It will start out with a head equal to the one given as <start-point>. |
| 25 | If no <start-point> is given, the branch will be created with a head |
| 26 | equal to that of the currently checked out branch. |
| 27 | |
Lars Hjemli | c976d41 | 2006-11-28 15:47:40 +0100 | [diff] [blame] | 28 | With a '-m' or '-M' option, <oldbranch> will be renamed to <newbranch>. |
| 29 | If <oldbranch> had a corresponding reflog, it is renamed to match |
| 30 | <newbranch>, and a reflog entry is created to remember the branch |
| 31 | renaming. If <newbranch> exists, -M must be used to force the rename |
| 32 | to happen. |
| 33 | |
Sean Estabrooks | 2eaf273 | 2006-04-28 09:15:04 -0400 | [diff] [blame] | 34 | With a `-d` or `-D` option, `<branchname>` will be deleted. You may |
Shawn Pearce | 3a4b3f2 | 2006-05-19 05:16:58 -0400 | [diff] [blame] | 35 | specify more than one branch for deletion. If the branch currently |
Quy Tonthat | 7dda22e | 2006-12-21 15:18:07 +1100 | [diff] [blame] | 36 | has a ref log then the ref log will also be deleted. Use -r together with -d |
| 37 | to delete remote-tracking branches. |
Jon Loeliger | dd18111 | 2006-03-17 18:24:37 -0600 | [diff] [blame] | 38 | |
| 39 | |
Junio C Hamano | 7fc9d69 | 2005-08-23 01:49:47 -0700 | [diff] [blame] | 40 | OPTIONS |
| 41 | ------- |
Andreas Ericsson | d4072c9 | 2005-11-14 17:53:42 +0100 | [diff] [blame] | 42 | -d:: |
| 43 | Delete a branch. The branch must be fully merged. |
| 44 | |
| 45 | -D:: |
| 46 | Delete a branch irrespective of its index status. |
| 47 | |
Shawn Pearce | 3a4b3f2 | 2006-05-19 05:16:58 -0400 | [diff] [blame] | 48 | -l:: |
| 49 | Create the branch's ref log. This activates recording of |
| 50 | all changes to made the branch ref, enabling use of date |
| 51 | based sha1 expressions such as "<branchname>@{yesterday}". |
| 52 | |
Fredrik Kuivinen | 075dd8e | 2006-01-29 15:02:51 +0100 | [diff] [blame] | 53 | -f:: |
Sean Estabrooks | 2eaf273 | 2006-04-28 09:15:04 -0400 | [diff] [blame] | 54 | Force the creation of a new branch even if it means deleting |
| 55 | a branch that already exists with the same name. |
| 56 | |
Lars Hjemli | c976d41 | 2006-11-28 15:47:40 +0100 | [diff] [blame] | 57 | -m:: |
| 58 | Move/rename a branch and the corresponding reflog. |
| 59 | |
| 60 | -M:: |
| 61 | Move/rename a branch even if the new branchname already exists. |
| 62 | |
Brian Gernhardt | f367398 | 2007-01-03 10:36:29 -0500 | [diff] [blame] | 63 | --color:: |
| 64 | Color branches to highlight current, local, and remote branches. |
| 65 | |
| 66 | --no-color:: |
| 67 | Turn off branch colors, even when the configuration file gives the |
| 68 | default to color output. |
| 69 | |
Sean Estabrooks | 2eaf273 | 2006-04-28 09:15:04 -0400 | [diff] [blame] | 70 | -r:: |
Quy Tonthat | 7dda22e | 2006-12-21 15:18:07 +1100 | [diff] [blame] | 71 | List or delete (if used with -d) the remote-tracking branches. |
Andy Parkins | bfcc921 | 2006-11-21 19:31:24 +0000 | [diff] [blame] | 72 | |
| 73 | -a:: |
| 74 | List both remote-tracking branches and local branches. |
Fredrik Kuivinen | 075dd8e | 2006-01-29 15:02:51 +0100 | [diff] [blame] | 75 | |
Lars Hjemli | 75e6e21 | 2006-11-24 14:45:10 +0100 | [diff] [blame] | 76 | -v:: |
René Scharfe | 23bfbb8 | 2007-01-17 16:32:41 +0100 | [diff] [blame] | 77 | Show sha1 and commit subject line for each head. |
Lars Hjemli | 75e6e21 | 2006-11-24 14:45:10 +0100 | [diff] [blame] | 78 | |
| 79 | --abbrev=<length>:: |
| 80 | Alter minimum display length for sha1 in output listing, |
| 81 | default value is 7. |
| 82 | |
A Large Angry SCM | 52a22d1 | 2005-08-26 18:18:48 -0700 | [diff] [blame] | 83 | <branchname>:: |
Andreas Ericsson | d4072c9 | 2005-11-14 17:53:42 +0100 | [diff] [blame] | 84 | The name of the branch to create or delete. |
Shawn Pearce | 2b1f424 | 2006-05-20 21:54:46 -0400 | [diff] [blame] | 85 | The new branch name must pass all checks defined by |
| 86 | gitlink:git-check-ref-format[1]. Some of these checks |
| 87 | may restrict the characters allowed in a branch name. |
Junio C Hamano | 7fc9d69 | 2005-08-23 01:49:47 -0700 | [diff] [blame] | 88 | |
Fredrik Kuivinen | 075dd8e | 2006-01-29 15:02:51 +0100 | [diff] [blame] | 89 | <start-point>:: |
Sean Estabrooks | 2eaf273 | 2006-04-28 09:15:04 -0400 | [diff] [blame] | 90 | The new branch will be created with a HEAD equal to this. It may |
| 91 | be given as a branch name, a commit-id, or a tag. If this option |
| 92 | is omitted, the current branch is assumed. |
| 93 | |
Lars Hjemli | c976d41 | 2006-11-28 15:47:40 +0100 | [diff] [blame] | 94 | <oldbranch>:: |
| 95 | The name of an existing branch to rename. |
| 96 | |
| 97 | <newbranch>:: |
| 98 | The new name for an existing branch. The same restrictions as for |
| 99 | <branchname> applies. |
Junio C Hamano | 7fc9d69 | 2005-08-23 01:49:47 -0700 | [diff] [blame] | 100 | |
Junio C Hamano | 1e2ccd3 | 2005-12-12 23:24:06 -0800 | [diff] [blame] | 101 | |
| 102 | Examples |
Sean Estabrooks | 2eaf273 | 2006-04-28 09:15:04 -0400 | [diff] [blame] | 103 | -------- |
Junio C Hamano | 1e2ccd3 | 2005-12-12 23:24:06 -0800 | [diff] [blame] | 104 | |
Jon Loeliger | dd18111 | 2006-03-17 18:24:37 -0600 | [diff] [blame] | 105 | Start development off of a known tag:: |
Junio C Hamano | 1e2ccd3 | 2005-12-12 23:24:06 -0800 | [diff] [blame] | 106 | + |
| 107 | ------------ |
| 108 | $ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6 |
| 109 | $ cd my2.6 |
Sean Estabrooks | 2eaf273 | 2006-04-28 09:15:04 -0400 | [diff] [blame] | 110 | $ git branch my2.6.14 v2.6.14 <1> |
Junio C Hamano | 1e2ccd3 | 2005-12-12 23:24:06 -0800 | [diff] [blame] | 111 | $ git checkout my2.6.14 |
Junio C Hamano | 1e2ccd3 | 2005-12-12 23:24:06 -0800 | [diff] [blame] | 112 | ------------ |
Sean Estabrooks | 2eaf273 | 2006-04-28 09:15:04 -0400 | [diff] [blame] | 113 | + |
| 114 | <1> This step and the next one could be combined into a single step with |
| 115 | "checkout -b my2.6.14 v2.6.14". |
Junio C Hamano | 1e2ccd3 | 2005-12-12 23:24:06 -0800 | [diff] [blame] | 116 | |
| 117 | Delete unneeded branch:: |
| 118 | + |
| 119 | ------------ |
| 120 | $ git clone git://git.kernel.org/.../git.git my.git |
| 121 | $ cd my.git |
Quy Tonthat | 7dda22e | 2006-12-21 15:18:07 +1100 | [diff] [blame] | 122 | $ git branch -d -r todo html man <1> |
| 123 | $ git branch -D test <2> |
Sean Estabrooks | 2eaf273 | 2006-04-28 09:15:04 -0400 | [diff] [blame] | 124 | ------------ |
| 125 | + |
Quy Tonthat | 7dda22e | 2006-12-21 15:18:07 +1100 | [diff] [blame] | 126 | <1> delete remote-tracking branches "todo", "html", "man" |
| 127 | <2> delete "test" branch even if the "master" branch does not have all |
Junio C Hamano | 1e2ccd3 | 2005-12-12 23:24:06 -0800 | [diff] [blame] | 128 | commits from todo branch. |
Sean Estabrooks | 2eaf273 | 2006-04-28 09:15:04 -0400 | [diff] [blame] | 129 | |
| 130 | |
| 131 | Notes |
| 132 | ----- |
| 133 | |
| 134 | If you are creating a branch that you want to immediately checkout, it's |
| 135 | easier to use the git checkout command with its `-b` option to create |
| 136 | a branch and check it out with a single command. |
| 137 | |
Junio C Hamano | 1e2ccd3 | 2005-12-12 23:24:06 -0800 | [diff] [blame] | 138 | |
Junio C Hamano | 7fc9d69 | 2005-08-23 01:49:47 -0700 | [diff] [blame] | 139 | Author |
| 140 | ------ |
| 141 | Written by Linus Torvalds <torvalds@osdl.org> and Junio C Hamano <junkio@cox.net> |
| 142 | |
| 143 | Documentation |
| 144 | -------------- |
| 145 | Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>. |
| 146 | |
| 147 | GIT |
| 148 | --- |
Sergey Vlasov | a7154e9 | 2005-09-19 14:10:51 +0400 | [diff] [blame] | 149 | Part of the gitlink:git[7] suite |
Junio C Hamano | 7fc9d69 | 2005-08-23 01:49:47 -0700 | [diff] [blame] | 150 | |