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