| 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 | 4aa0bcc | 2010-03-03 05:13:12 | [diff] [blame] | 11 | 'git branch' [--color[=<when>] | --no-color] [-r | -a] |
| Junio C Hamano | 8fb66e5 | 2011-10-05 20:59:51 | [diff] [blame] | 12 | [--list] [-v [--abbrev=<length> | --no-abbrev]] |
| Junio C Hamano | 59a5f53 | 2017-04-11 08:38:02 | [diff] [blame] | 13 | [--column[=<options>] | --no-column] [--sort=<key>] |
| 14 | [(--merged | --no-merged) [<commit>]] |
| 15 | [--contains [<commit]] [--no-contains [<commit>]] |
| Junio C Hamano | cbe0eb2 | 2017-02-27 23:37:49 | [diff] [blame] | 16 | [--points-at <object>] [--format=<format>] [<pattern>...] |
| Junio C Hamano | 57827fb | 2010-01-23 03:02:50 | [diff] [blame] | 17 | 'git branch' [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>] |
| Junio C Hamano | eccdd4a | 2012-09-10 23:28:17 | [diff] [blame] | 18 | 'git branch' (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>] |
| 19 | 'git branch' --unset-upstream [<branchname>] |
| Junio C Hamano | fce7c7e | 2008-07-02 03:06:38 | [diff] [blame] | 20 | 'git branch' (-m | -M) [<oldbranch>] <newbranch> |
| 21 | 'git branch' (-d | -D) [-r] <branchname>... |
| Junio C Hamano | 515ab1d | 2011-12-09 23:41:20 | [diff] [blame] | 22 | 'git branch' --edit-description [<branchname>] |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 23 | |
| 24 | DESCRIPTION |
| 25 | ----------- |
| Junio C Hamano | 38ddcce | 2008-07-15 15:49:03 | [diff] [blame] | 26 | |
| Junio C Hamano | b5e079f | 2013-02-08 00:02:52 | [diff] [blame] | 27 | If `--list` is given, or if there are no non-option arguments, existing |
| 28 | branches are listed; the current branch will be highlighted with an |
| 29 | asterisk. Option `-r` causes the remote-tracking branches to be listed, |
| 30 | and option `-a` shows both local and remote branches. If a `<pattern>` |
| 31 | is given, it is used as a shell wildcard to restrict the output to |
| 32 | matching branches. If multiple patterns are given, a branch is shown if |
| 33 | it matches any of the patterns. Note that when providing a |
| 34 | `<pattern>`, you must use `--list`; otherwise the command is interpreted |
| 35 | as branch creation. |
| Junio C Hamano | 38ddcce | 2008-07-15 15:49:03 | [diff] [blame] | 36 | |
| Junio C Hamano | fd83b8e | 2009-03-22 08:21:41 | [diff] [blame] | 37 | With `--contains`, shows only the branches that contain the named commit |
| 38 | (in other words, the branches whose tip commits are descendants of the |
| Junio C Hamano | 59a5f53 | 2017-04-11 08:38:02 | [diff] [blame] | 39 | named commit), `--no-contains` inverts it. With `--merged`, only branches |
| 40 | merged into the named commit (i.e. the branches whose tip commits are |
| 41 | reachable from the named commit) will be listed. With `--no-merged` only |
| 42 | branches not merged into the named commit will be listed. If the <commit> |
| 43 | argument is missing it defaults to `HEAD` (i.e. the tip of the current |
| 44 | branch). |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 45 | |
| Junio C Hamano | c0e55e7 | 2009-10-10 00:56:29 | [diff] [blame] | 46 | The command's second form creates a new branch head named <branchname> |
| Junio C Hamano | 92d8037 | 2016-07-13 22:00:05 | [diff] [blame] | 47 | which points to the current `HEAD`, or <start-point> if given. |
| Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 48 | |
| Junio C Hamano | 1b50ce9 | 2007-10-03 12:05:53 | [diff] [blame] | 49 | Note that this will create the new branch, but it will not switch the |
| 50 | working tree to it; use "git checkout <newbranch>" to switch to the |
| 51 | new branch. |
| 52 | |
| Junio C Hamano | 076ffcc | 2013-02-06 05:13:21 | [diff] [blame] | 53 | When a local branch is started off a remote-tracking branch, Git sets up the |
| Junio C Hamano | 79f4c7c | 2013-09-20 21:03:37 | [diff] [blame] | 54 | branch (specifically the `branch.<name>.remote` and `branch.<name>.merge` |
| 55 | configuration entries) so that 'git pull' will appropriately merge from |
| Junio C Hamano | 97bcb48 | 2010-11-25 03:16:07 | [diff] [blame] | 56 | the remote-tracking branch. This behavior may be changed via the global |
| Junio C Hamano | 322c624 | 2015-03-23 21:32:46 | [diff] [blame] | 57 | `branch.autoSetupMerge` configuration flag. That setting can be |
| Junio C Hamano | 97bcb48 | 2010-11-25 03:16:07 | [diff] [blame] | 58 | overridden by using the `--track` and `--no-track` options, and |
| Junio C Hamano | eccdd4a | 2012-09-10 23:28:17 | [diff] [blame] | 59 | changed later using `git branch --set-upstream-to`. |
| Junio C Hamano | 103ad7f | 2007-03-14 11:19:26 | [diff] [blame] | 60 | |
| Junio C Hamano | cae88e2 | 2012-03-09 00:13:20 | [diff] [blame] | 61 | With a `-m` or `-M` option, <oldbranch> will be renamed to <newbranch>. |
| Junio C Hamano | e7935c4 | 2006-12-13 21:32:17 | [diff] [blame] | 62 | If <oldbranch> had a corresponding reflog, it is renamed to match |
| 63 | <newbranch>, and a reflog entry is created to remember the branch |
| 64 | renaming. If <newbranch> exists, -M must be used to force the rename |
| 65 | to happen. |
| 66 | |
| Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 67 | With a `-d` or `-D` option, `<branchname>` will be deleted. You may |
| Junio C Hamano | 341071d | 2006-06-04 07:24:48 | [diff] [blame] | 68 | specify more than one branch for deletion. If the branch currently |
| Junio C Hamano | 258e441 | 2007-11-29 02:28:32 | [diff] [blame] | 69 | has a reflog then the reflog will also be deleted. |
| 70 | |
| Junio C Hamano | cae88e2 | 2012-03-09 00:13:20 | [diff] [blame] | 71 | Use `-r` together with `-d` to delete remote-tracking branches. Note, that it |
| Junio C Hamano | 258e441 | 2007-11-29 02:28:32 | [diff] [blame] | 72 | only makes sense to delete remote-tracking branches if they no longer exist |
| Junio C Hamano | 1aa40d2 | 2010-01-21 17:46:43 | [diff] [blame] | 73 | in the remote repository or if 'git fetch' was configured not to fetch |
| Junio C Hamano | fd83b8e | 2009-03-22 08:21:41 | [diff] [blame] | 74 | them again. See also the 'prune' subcommand of linkgit:git-remote[1] for a |
| 75 | way to clean up all obsolete remote-tracking branches. |
| Junio C Hamano | 2b13527 | 2006-03-18 07:45:42 | [diff] [blame] | 76 | |
| 77 | |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 78 | OPTIONS |
| 79 | ------- |
| 80 | -d:: |
| Junio C Hamano | 8fb66e5 | 2011-10-05 20:59:51 | [diff] [blame] | 81 | --delete:: |
| Junio C Hamano | d965706 | 2010-04-18 00:01:03 | [diff] [blame] | 82 | Delete a branch. The branch must be fully merged in its |
| 83 | upstream branch, or in `HEAD` if no upstream was set with |
| 84 | `--track` or `--set-upstream`. |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 85 | |
| 86 | -D:: |
| Junio C Hamano | 823eebb | 2015-07-10 22:29:34 | [diff] [blame] | 87 | Shortcut for `--delete --force`. |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 88 | |
| Junio C Hamano | 341071d | 2006-06-04 07:24:48 | [diff] [blame] | 89 | -l:: |
| Junio C Hamano | 8fb66e5 | 2011-10-05 20:59:51 | [diff] [blame] | 90 | --create-reflog:: |
| Junio C Hamano | 1d90cb0 | 2007-07-03 07:05:31 | [diff] [blame] | 91 | Create the branch's reflog. This activates recording of |
| 92 | all changes made to the branch ref, enabling use of date |
| 93 | based sha1 expressions such as "<branchname>@\{yesterday}". |
| Junio C Hamano | e749562 | 2010-04-09 07:18:35 | [diff] [blame] | 94 | Note that in non-bare repositories, reflogs are usually |
| 95 | enabled by default by the `core.logallrefupdates` config option. |
| Junio C Hamano | a8e4261 | 2017-02-03 21:44:07 | [diff] [blame] | 96 | The negated form `--no-create-reflog` only overrides an earlier |
| 97 | `--create-reflog`, but currently does not negate the setting of |
| 98 | `core.logallrefupdates`. |
| Junio C Hamano | 341071d | 2006-06-04 07:24:48 | [diff] [blame] | 99 | |
| Junio C Hamano | 560a1f6 | 2006-01-30 04:19:57 | [diff] [blame] | 100 | -f:: |
| Junio C Hamano | 68cfa3a | 2009-08-30 00:22:55 | [diff] [blame] | 101 | --force:: |
| Junio C Hamano | ea82cff | 2009-03-18 01:54:48 | [diff] [blame] | 102 | Reset <branchname> to <startpoint> if <branchname> exists |
| Junio C Hamano | 1aa40d2 | 2010-01-21 17:46:43 | [diff] [blame] | 103 | already. Without `-f` 'git branch' refuses to change an existing branch. |
| Junio C Hamano | 823eebb | 2015-07-10 22:29:34 | [diff] [blame] | 104 | In combination with `-d` (or `--delete`), allow deleting the |
| 105 | branch irrespective of its merged status. In combination with |
| 106 | `-m` (or `--move`), allow renaming the branch even if the new |
| 107 | branch name already exists. |
| Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 108 | |
| Junio C Hamano | e7935c4 | 2006-12-13 21:32:17 | [diff] [blame] | 109 | -m:: |
| Junio C Hamano | 8fb66e5 | 2011-10-05 20:59:51 | [diff] [blame] | 110 | --move:: |
| Junio C Hamano | e7935c4 | 2006-12-13 21:32:17 | [diff] [blame] | 111 | Move/rename a branch and the corresponding reflog. |
| 112 | |
| 113 | -M:: |
| Junio C Hamano | 823eebb | 2015-07-10 22:29:34 | [diff] [blame] | 114 | Shortcut for `--move --force`. |
| Junio C Hamano | e7935c4 | 2006-12-13 21:32:17 | [diff] [blame] | 115 | |
| Junio C Hamano | 4aa0bcc | 2010-03-03 05:13:12 | [diff] [blame] | 116 | --color[=<when>]:: |
| Junio C Hamano | 97bcb48 | 2010-11-25 03:16:07 | [diff] [blame] | 117 | Color branches to highlight current, local, and |
| 118 | remote-tracking branches. |
| Junio C Hamano | 4aa0bcc | 2010-03-03 05:13:12 | [diff] [blame] | 119 | The value must be always (the default), never, or auto. |
| Junio C Hamano | eb69295 | 2007-01-03 22:02:12 | [diff] [blame] | 120 | |
| 121 | --no-color:: |
| 122 | Turn off branch colors, even when the configuration file gives the |
| 123 | default to color output. |
| Junio C Hamano | 4aa0bcc | 2010-03-03 05:13:12 | [diff] [blame] | 124 | Same as `--color=never`. |
| Junio C Hamano | eb69295 | 2007-01-03 22:02:12 | [diff] [blame] | 125 | |
| Junio C Hamano | 52b1cfb | 2016-12-20 00:18:36 | [diff] [blame] | 126 | -i:: |
| 127 | --ignore-case:: |
| 128 | Sorting and filtering branches are case insensitive. |
| 129 | |
| Junio C Hamano | 22700fb | 2012-05-03 23:07:25 | [diff] [blame] | 130 | --column[=<options>]:: |
| 131 | --no-column:: |
| 132 | Display branch listing in columns. See configuration variable |
| 133 | column.branch for option syntax.`--column` and `--no-column` |
| 134 | without options are equivalent to 'always' and 'never' respectively. |
| 135 | + |
| 136 | This option is only applicable in non-verbose mode. |
| 137 | |
| Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 138 | -r:: |
| Junio C Hamano | 8fb66e5 | 2011-10-05 20:59:51 | [diff] [blame] | 139 | --remotes:: |
| Junio C Hamano | 63ef0ac | 2006-12-22 07:28:18 | [diff] [blame] | 140 | List or delete (if used with -d) the remote-tracking branches. |
| Junio C Hamano | fe9acab | 2006-11-24 12:10:55 | [diff] [blame] | 141 | |
| 142 | -a:: |
| Junio C Hamano | 8fb66e5 | 2011-10-05 20:59:51 | [diff] [blame] | 143 | --all:: |
| Junio C Hamano | fe9acab | 2006-11-24 12:10:55 | [diff] [blame] | 144 | List both remote-tracking branches and local branches. |
| Junio C Hamano | 560a1f6 | 2006-01-30 04:19:57 | [diff] [blame] | 145 | |
| Junio C Hamano | 8fb66e5 | 2011-10-05 20:59:51 | [diff] [blame] | 146 | --list:: |
| Junio C Hamano | 2affb96 | 2017-03-28 22:01:40 | [diff] [blame] | 147 | List branches. With optional `<pattern>...`, e.g. `git |
| 148 | branch --list 'maint-*'`, list only the branches that match |
| 149 | the pattern(s). |
| 150 | + |
| 151 | This should not be confused with `git branch -l <branchname>`, |
| 152 | which creates a branch named `<branchname>` with a reflog. |
| 153 | See `--create-reflog` above for details. |
| Junio C Hamano | 8fb66e5 | 2011-10-05 20:59:51 | [diff] [blame] | 154 | |
| Junio C Hamano | eb41599 | 2008-06-08 22:49:47 | [diff] [blame] | 155 | -v:: |
| Junio C Hamano | 4f07aec | 2012-09-25 19:08:44 | [diff] [blame] | 156 | -vv:: |
| Junio C Hamano | eb41599 | 2008-06-08 22:49:47 | [diff] [blame] | 157 | --verbose:: |
| Junio C Hamano | 8fb66e5 | 2011-10-05 20:59:51 | [diff] [blame] | 158 | When in list mode, |
| 159 | show sha1 and commit subject line for each head, along with |
| Junio C Hamano | 98e32c3 | 2009-04-13 02:39:53 | [diff] [blame] | 160 | relationship to upstream branch (if any). If given twice, print |
| Junio C Hamano | 4f07aec | 2012-09-25 19:08:44 | [diff] [blame] | 161 | the name of the upstream branch, as well (see also `git remote |
| 162 | show <remote>`). |
| Junio C Hamano | 53edd07 | 2006-11-25 10:05:21 | [diff] [blame] | 163 | |
| Junio C Hamano | 51f87de | 2012-04-16 21:18:54 | [diff] [blame] | 164 | -q:: |
| 165 | --quiet:: |
| 166 | Be more quiet when creating or deleting a branch, suppressing |
| 167 | non-error messages. |
| 168 | |
| Junio C Hamano | 53edd07 | 2006-11-25 10:05:21 | [diff] [blame] | 169 | --abbrev=<length>:: |
| Junio C Hamano | fd83b8e | 2009-03-22 08:21:41 | [diff] [blame] | 170 | Alter the sha1's minimum display length in the output listing. |
| Junio C Hamano | 6e41cb3 | 2011-08-29 07:12:49 | [diff] [blame] | 171 | The default value is 7 and can be overridden by the `core.abbrev` |
| 172 | config option. |
| Junio C Hamano | 53edd07 | 2006-11-25 10:05:21 | [diff] [blame] | 173 | |
| Junio C Hamano | a3fccdf | 2007-03-03 05:18:26 | [diff] [blame] | 174 | --no-abbrev:: |
| Junio C Hamano | fd83b8e | 2009-03-22 08:21:41 | [diff] [blame] | 175 | Display the full sha1s in the output listing rather than abbreviating them. |
| Junio C Hamano | a3fccdf | 2007-03-03 05:18:26 | [diff] [blame] | 176 | |
| Junio C Hamano | 89bdb3b | 2009-05-10 06:48:14 | [diff] [blame] | 177 | -t:: |
| Junio C Hamano | 1b50ce9 | 2007-10-03 12:05:53 | [diff] [blame] | 178 | --track:: |
| Junio C Hamano | 79f4c7c | 2013-09-20 21:03:37 | [diff] [blame] | 179 | When creating a new branch, set up `branch.<name>.remote` and |
| 180 | `branch.<name>.merge` configuration entries to mark the |
| Junio C Hamano | 3bd66e9 | 2009-04-18 06:17:56 | [diff] [blame] | 181 | start-point branch as "upstream" from the new branch. This |
| 182 | configuration will tell git to show the relationship between the |
| 183 | two branches in `git status` and `git branch -v`. Furthermore, |
| 184 | it directs `git pull` without arguments to pull from the |
| 185 | upstream when the new branch is checked out. |
| 186 | + |
| Junio C Hamano | 97bcb48 | 2010-11-25 03:16:07 | [diff] [blame] | 187 | This behavior is the default when the start point is a remote-tracking branch. |
| Junio C Hamano | 322c624 | 2015-03-23 21:32:46 | [diff] [blame] | 188 | Set the branch.autoSetupMerge configuration variable to `false` if you |
| Junio C Hamano | 92d8037 | 2016-07-13 22:00:05 | [diff] [blame] | 189 | want `git checkout` and `git branch` to always behave as if `--no-track` |
| Junio C Hamano | 3bd66e9 | 2009-04-18 06:17:56 | [diff] [blame] | 190 | were given. Set it to `always` if you want this behavior when the |
| Junio C Hamano | 97bcb48 | 2010-11-25 03:16:07 | [diff] [blame] | 191 | start-point is either a local or remote-tracking branch. |
| Junio C Hamano | 1b50ce9 | 2007-10-03 12:05:53 | [diff] [blame] | 192 | |
| 193 | --no-track:: |
| Junio C Hamano | 3bd66e9 | 2009-04-18 06:17:56 | [diff] [blame] | 194 | Do not set up "upstream" configuration, even if the |
| Junio C Hamano | 322c624 | 2015-03-23 21:32:46 | [diff] [blame] | 195 | branch.autoSetupMerge configuration variable is true. |
| Junio C Hamano | 1b50ce9 | 2007-10-03 12:05:53 | [diff] [blame] | 196 | |
| Junio C Hamano | 57827fb | 2010-01-23 03:02:50 | [diff] [blame] | 197 | --set-upstream:: |
| Junio C Hamano | bc39b7d | 2017-09-06 04:37:23 | [diff] [blame^] | 198 | As this option had confusing syntax, it is no longer supported. |
| 199 | Please use `--track` or `--set-upstream-to` instead. |
| Junio C Hamano | 57827fb | 2010-01-23 03:02:50 | [diff] [blame] | 200 | |
| Junio C Hamano | eccdd4a | 2012-09-10 23:28:17 | [diff] [blame] | 201 | -u <upstream>:: |
| 202 | --set-upstream-to=<upstream>:: |
| 203 | Set up <branchname>'s tracking information so <upstream> is |
| 204 | considered <branchname>'s upstream branch. If no <branchname> |
| 205 | is specified, then it defaults to the current branch. |
| 206 | |
| 207 | --unset-upstream:: |
| 208 | Remove the upstream information for <branchname>. If no branch |
| 209 | is specified it defaults to the current branch. |
| 210 | |
| Junio C Hamano | 515ab1d | 2011-12-09 23:41:20 | [diff] [blame] | 211 | --edit-description:: |
| 212 | Open an editor and edit the text to explain what the branch is |
| Junio C Hamano | 7db630e | 2015-09-17 20:26:22 | [diff] [blame] | 213 | for, to be used by various other commands (e.g. `format-patch`, |
| 214 | `request-pull`, and `merge` (if enabled)). Multi-line explanations |
| 215 | may be used. |
| Junio C Hamano | 515ab1d | 2011-12-09 23:41:20 | [diff] [blame] | 216 | |
| Junio C Hamano | cae88e2 | 2012-03-09 00:13:20 | [diff] [blame] | 217 | --contains [<commit>]:: |
| 218 | Only list branches which contain the specified commit (HEAD |
| Junio C Hamano | b5e079f | 2013-02-08 00:02:52 | [diff] [blame] | 219 | if not specified). Implies `--list`. |
| Junio C Hamano | 47d68a5 | 2008-05-06 06:35:40 | [diff] [blame] | 220 | |
| Junio C Hamano | 59a5f53 | 2017-04-11 08:38:02 | [diff] [blame] | 221 | --no-contains [<commit>]:: |
| 222 | Only list branches which don't contain the specified commit |
| 223 | (HEAD if not specified). Implies `--list`. |
| 224 | |
| Junio C Hamano | c0e55e7 | 2009-10-10 00:56:29 | [diff] [blame] | 225 | --merged [<commit>]:: |
| 226 | Only list branches whose tips are reachable from the |
| Junio C Hamano | 59a5f53 | 2017-04-11 08:38:02 | [diff] [blame] | 227 | specified commit (HEAD if not specified). Implies `--list`, |
| 228 | incompatible with `--no-merged`. |
| Junio C Hamano | 47d68a5 | 2008-05-06 06:35:40 | [diff] [blame] | 229 | |
| Junio C Hamano | c0e55e7 | 2009-10-10 00:56:29 | [diff] [blame] | 230 | --no-merged [<commit>]:: |
| 231 | Only list branches whose tips are not reachable from the |
| Junio C Hamano | 59a5f53 | 2017-04-11 08:38:02 | [diff] [blame] | 232 | specified commit (HEAD if not specified). Implies `--list`, |
| 233 | incompatible with `--merged`. |
| Junio C Hamano | 47d68a5 | 2008-05-06 06:35:40 | [diff] [blame] | 234 | |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 235 | <branchname>:: |
| 236 | The name of the branch to create or delete. |
| Junio C Hamano | b2f5edd | 2006-05-21 10:50:09 | [diff] [blame] | 237 | The new branch name must pass all checks defined by |
| Junio C Hamano | 35738e8 | 2008-01-07 07:55:46 | [diff] [blame] | 238 | linkgit:git-check-ref-format[1]. Some of these checks |
| Junio C Hamano | b2f5edd | 2006-05-21 10:50:09 | [diff] [blame] | 239 | may restrict the characters allowed in a branch name. |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 240 | |
| Junio C Hamano | 560a1f6 | 2006-01-30 04:19:57 | [diff] [blame] | 241 | <start-point>:: |
| Junio C Hamano | c0e55e7 | 2009-10-10 00:56:29 | [diff] [blame] | 242 | The new branch head will point to this commit. It may be |
| 243 | given as a branch name, a commit-id, or a tag. If this |
| 244 | option is omitted, the current HEAD will be used instead. |
| Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 245 | |
| Junio C Hamano | e7935c4 | 2006-12-13 21:32:17 | [diff] [blame] | 246 | <oldbranch>:: |
| 247 | The name of an existing branch to rename. |
| 248 | |
| 249 | <newbranch>:: |
| 250 | The new name for an existing branch. The same restrictions as for |
| Junio C Hamano | fd83b8e | 2009-03-22 08:21:41 | [diff] [blame] | 251 | <branchname> apply. |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 252 | |
| Junio C Hamano | b0a1e83 | 2015-10-15 23:08:31 | [diff] [blame] | 253 | --sort=<key>:: |
| 254 | Sort based on the key given. Prefix `-` to sort in descending |
| 255 | order of the value. You may use the --sort=<key> option |
| 256 | multiple times, in which case the last key becomes the primary |
| 257 | key. The keys supported are the same as those in `git |
| 258 | for-each-ref`. Sort order defaults to sorting based on the |
| 259 | full refname (including `refs/...` prefix). This lists |
| 260 | detached HEAD (if present) first, then local branches and |
| 261 | finally remote-tracking branches. |
| 262 | |
| 263 | |
| 264 | --points-at <object>:: |
| 265 | Only list branches of the given object. |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 266 | |
| Junio C Hamano | cbe0eb2 | 2017-02-27 23:37:49 | [diff] [blame] | 267 | --format <format>:: |
| Junio C Hamano | a4ff729 | 2017-08-23 21:56:43 | [diff] [blame] | 268 | A string that interpolates `%(fieldname)` from a branch ref being shown |
| 269 | and the object it points at. The format is the same as |
| Junio C Hamano | cbe0eb2 | 2017-02-27 23:37:49 | [diff] [blame] | 270 | that of linkgit:git-for-each-ref[1]. |
| 271 | |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 272 | Examples |
| Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 273 | -------- |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 274 | |
| Junio C Hamano | fd83b8e | 2009-03-22 08:21:41 | [diff] [blame] | 275 | Start development from a known tag:: |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 276 | + |
| 277 | ------------ |
| 278 | $ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6 |
| 279 | $ cd my2.6 |
| Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 280 | $ git branch my2.6.14 v2.6.14 <1> |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 281 | $ git checkout my2.6.14 |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 282 | ------------ |
| Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 283 | + |
| 284 | <1> This step and the next one could be combined into a single step with |
| 285 | "checkout -b my2.6.14 v2.6.14". |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 286 | |
| Junio C Hamano | fd83b8e | 2009-03-22 08:21:41 | [diff] [blame] | 287 | Delete an unneeded branch:: |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 288 | + |
| 289 | ------------ |
| 290 | $ git clone git://git.kernel.org/.../git.git my.git |
| 291 | $ cd my.git |
| Junio C Hamano | 18b6ff3 | 2007-07-17 10:40:26 | [diff] [blame] | 292 | $ git branch -d -r origin/todo origin/html origin/man <1> |
| 293 | $ git branch -D test <2> |
| Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 294 | ------------ |
| 295 | + |
| Junio C Hamano | fd83b8e | 2009-03-22 08:21:41 | [diff] [blame] | 296 | <1> Delete the remote-tracking branches "todo", "html" and "man". The next |
| 297 | 'fetch' or 'pull' will create them again unless you configure them not to. |
| 298 | See linkgit:git-fetch[1]. |
| 299 | <2> Delete the "test" branch even if the "master" branch (or whichever branch |
| 300 | is currently checked out) does not have all commits from the test branch. |
| Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 301 | |
| 302 | |
| 303 | Notes |
| 304 | ----- |
| 305 | |
| Junio C Hamano | fd83b8e | 2009-03-22 08:21:41 | [diff] [blame] | 306 | If you are creating a branch that you want to checkout immediately, it is |
| Junio C Hamano | c8d88c2 | 2006-04-29 07:02:01 | [diff] [blame] | 307 | easier to use the git checkout command with its `-b` option to create |
| 308 | a branch and check it out with a single command. |
| 309 | |
| Junio C Hamano | 59a5f53 | 2017-04-11 08:38:02 | [diff] [blame] | 310 | The options `--contains`, `--no-contains`, `--merged` and `--no-merged` |
| 311 | serve four related but different purposes: |
| Junio C Hamano | 47d68a5 | 2008-05-06 06:35:40 | [diff] [blame] | 312 | |
| 313 | - `--contains <commit>` is used to find all branches which will need |
| 314 | special attention if <commit> were to be rebased or amended, since those |
| 315 | branches contain the specified <commit>. |
| 316 | |
| Junio C Hamano | 59a5f53 | 2017-04-11 08:38:02 | [diff] [blame] | 317 | - `--no-contains <commit>` is the inverse of that, i.e. branches that don't |
| 318 | contain the specified <commit>. |
| 319 | |
| Junio C Hamano | 47d68a5 | 2008-05-06 06:35:40 | [diff] [blame] | 320 | - `--merged` is used to find all branches which can be safely deleted, |
| 321 | since those branches are fully contained by HEAD. |
| 322 | |
| 323 | - `--no-merged` is used to find branches which are candidates for merging |
| 324 | into HEAD, since those branches are not fully contained by HEAD. |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 325 | |
| Junio C Hamano | c276ec7 | 2009-08-26 01:35:22 | [diff] [blame] | 326 | SEE ALSO |
| 327 | -------- |
| 328 | linkgit:git-check-ref-format[1], |
| 329 | linkgit:git-fetch[1], |
| Junio C Hamano | c0e55e7 | 2009-10-10 00:56:29 | [diff] [blame] | 330 | linkgit:git-remote[1], |
| 331 | link:user-manual.html#what-is-a-branch[``Understanding history: What is |
| 332 | a branch?''] in the Git User's Manual. |
| Junio C Hamano | c276ec7 | 2009-08-26 01:35:22 | [diff] [blame] | 333 | |
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 334 | GIT |
| 335 | --- |
| Junio C Hamano | f7c042d | 2008-06-06 22:50:53 | [diff] [blame] | 336 | Part of the linkgit:git[1] suite |