Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 1 | git-branch(1) |
| 2 | ============= |
| 3 | |
| 4 | NAME |
| 5 | ---- |
Junio C Hamano | 7c73c66 | 2007-01-19 00:37:50 | [diff] [blame] | 6 | git-branch - List, create, or delete branches |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 7 | |
| 8 | SYNOPSIS |
| 9 | -------- |
Junio C Hamano | 2b13527 | 2006-03-18 07:45:42 | [diff] [blame] | 10 | [verse] |
Junio C Hamano | a3fccdf | 2007-03-03 05:18:26 | [diff] [blame] | 11 | 'git-branch' [--color | --no-color] [-r | -a] |
| 12 | [-v [--abbrev=<length> | --no-abbrev]] |
Junio C Hamano | 103ad7f | 2007-03-14 11:19:26 | [diff] [blame^] | 13 | 'git-branch' [--track | --no-track] [-l] [-f] <branchname> [<start-point>] |
Junio C Hamano | e7935c4 | 2006-12-13 21:32:17 | [diff] [blame] | 14 | 'git-branch' (-m | -M) [<oldbranch>] <newbranch> |
Junio C Hamano | 63ef0ac | 2006-12-22 07:28:18 | [diff] [blame] | 15 | 'git-branch' (-d | -D) [-r] <branchname>... |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 16 | |
| 17 | DESCRIPTION |
| 18 | ----------- |
Junio C Hamano | fe9acab | 2006-11-24 12:10:55 | [diff] [blame] | 19 | With no arguments given a list of existing branches |
Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 20 | will be shown, the current branch will be highlighted with an asterisk. |
Junio C Hamano | fe9acab | 2006-11-24 12:10:55 | [diff] [blame] | 21 | Option `-r` causes the remote-tracking branches to be listed, |
| 22 | and option `-a` shows both. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 23 | |
Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 24 | In its second form, a new branch named <branchname> will be created. |
| 25 | It will start out with a head equal to the one given as <start-point>. |
| 26 | If no <start-point> is given, the branch will be created with a head |
| 27 | equal to that of the currently checked out branch. |
| 28 | |
Junio C Hamano | 103ad7f | 2007-03-14 11:19:26 | [diff] [blame^] | 29 | When a local branch is started off a remote branch, git can setup the |
| 30 | branch so that gitlink:git-pull[1] will appropriately merge from that |
| 31 | remote branch. If this behavior is desired, it is possible to make it |
| 32 | the default using the global `branch.autosetupmerge` configuration |
| 33 | flag. Otherwise, it can be chosen per-branch using the `--track` |
| 34 | and `--no-track` options. |
| 35 | |
Junio C Hamano | e7935c4 | 2006-12-13 21:32:17 | [diff] [blame] | 36 | With a '-m' or '-M' option, <oldbranch> will be renamed to <newbranch>. |
| 37 | If <oldbranch> had a corresponding reflog, it is renamed to match |
| 38 | <newbranch>, and a reflog entry is created to remember the branch |
| 39 | renaming. If <newbranch> exists, -M must be used to force the rename |
| 40 | to happen. |
| 41 | |
Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 42 | With a `-d` or `-D` option, `<branchname>` will be deleted. You may |
Junio C Hamano | 341071d | 2006-06-04 07:24:48 | [diff] [blame] | 43 | specify more than one branch for deletion. If the branch currently |
Junio C Hamano | 63ef0ac | 2006-12-22 07:28:18 | [diff] [blame] | 44 | has a ref log then the ref log will also be deleted. Use -r together with -d |
| 45 | to delete remote-tracking branches. |
Junio C Hamano | 2b13527 | 2006-03-18 07:45:42 | [diff] [blame] | 46 | |
| 47 | |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 48 | OPTIONS |
| 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 | |
Junio C Hamano | 341071d | 2006-06-04 07:24:48 | [diff] [blame] | 56 | -l:: |
| 57 | Create the branch's ref log. This activates recording of |
| 58 | all changes to made the branch ref, enabling use of date |
| 59 | based sha1 expressions such as "<branchname>@{yesterday}". |
| 60 | |
Junio C Hamano | 560a1f6 | 2006-01-30 04:19:57 | [diff] [blame] | 61 | -f:: |
Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 62 | Force the creation of a new branch even if it means deleting |
| 63 | a branch that already exists with the same name. |
| 64 | |
Junio C Hamano | e7935c4 | 2006-12-13 21:32:17 | [diff] [blame] | 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 | |
Junio C Hamano | eb69295 | 2007-01-03 22:02:12 | [diff] [blame] | 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 | |
Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 78 | -r:: |
Junio C Hamano | 63ef0ac | 2006-12-22 07:28:18 | [diff] [blame] | 79 | List or delete (if used with -d) the remote-tracking branches. |
Junio C Hamano | fe9acab | 2006-11-24 12:10:55 | [diff] [blame] | 80 | |
| 81 | -a:: |
| 82 | List both remote-tracking branches and local branches. |
Junio C Hamano | 560a1f6 | 2006-01-30 04:19:57 | [diff] [blame] | 83 | |
Junio C Hamano | 53edd07 | 2006-11-25 10:05:21 | [diff] [blame] | 84 | -v:: |
Junio C Hamano | f9771f6 | 2007-01-17 17:42:30 | [diff] [blame] | 85 | Show sha1 and commit subject line for each head. |
Junio C Hamano | 53edd07 | 2006-11-25 10:05:21 | [diff] [blame] | 86 | |
| 87 | --abbrev=<length>:: |
| 88 | Alter minimum display length for sha1 in output listing, |
| 89 | default value is 7. |
| 90 | |
Junio C Hamano | a3fccdf | 2007-03-03 05:18:26 | [diff] [blame] | 91 | --no-abbrev:: |
| 92 | Display the full sha1s in output listing rather than abbreviating them. |
| 93 | |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 94 | <branchname>:: |
| 95 | The name of the branch to create or delete. |
Junio C Hamano | b2f5edd | 2006-05-21 10:50:09 | [diff] [blame] | 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. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 99 | |
Junio C Hamano | 560a1f6 | 2006-01-30 04:19:57 | [diff] [blame] | 100 | <start-point>:: |
Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 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 | |
Junio C Hamano | e7935c4 | 2006-12-13 21:32:17 | [diff] [blame] | 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. |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 111 | |
| 112 | |
| 113 | Examples |
Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 114 | -------- |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 115 | |
Junio C Hamano | 2b13527 | 2006-03-18 07:45:42 | [diff] [blame] | 116 | Start development off of a known tag:: |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 117 | + |
| 118 | ------------ |
| 119 | $ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6 |
| 120 | $ cd my2.6 |
Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 121 | $ git branch my2.6.14 v2.6.14 <1> |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 122 | $ git checkout my2.6.14 |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 123 | ------------ |
Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 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". |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 127 | |
| 128 | Delete unneeded branch:: |
| 129 | + |
| 130 | ------------ |
| 131 | $ git clone git://git.kernel.org/.../git.git my.git |
| 132 | $ cd my.git |
Junio C Hamano | 63ef0ac | 2006-12-22 07:28:18 | [diff] [blame] | 133 | $ git branch -d -r todo html man <1> |
| 134 | $ git branch -D test <2> |
Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 135 | ------------ |
| 136 | + |
Junio C Hamano | 63ef0ac | 2006-12-22 07:28:18 | [diff] [blame] | 137 | <1> delete remote-tracking branches "todo", "html", "man" |
| 138 | <2> delete "test" branch even if the "master" branch does not have all |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 139 | commits from todo branch. |
Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 140 | |
| 141 | |
| 142 | Notes |
| 143 | ----- |
| 144 | |
| 145 | If you are creating a branch that you want to immediately checkout, it's |
| 146 | easier to use the git checkout command with its `-b` option to create |
| 147 | a branch and check it out with a single command. |
| 148 | |
Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 149 | |
| 150 | Author |
| 151 | ------ |
| 152 | Written by Linus Torvalds <torvalds@osdl.org> and Junio C Hamano <junkio@cox.net> |
| 153 | |
| 154 | Documentation |
| 155 | -------------- |
| 156 | Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>. |
| 157 | |
| 158 | GIT |
| 159 | --- |
| 160 | Part of the gitlink:git[7] suite |
| 161 | |