1git-show-branch(1) 2================== 3 4NAME 5---- 6git-show-branch - Show branches and their commits 7 8SYNOPSIS 9-------- 10[verse] 11'git show-branch' [--all] [--remotes] [--topo-order] [--current] 12 [--more=<n> | --list | --independent | --merge-base] 13 [--color | --no-color] 14 [--no-name | --sha1-name] [--topics] [<rev> | <glob>]... 15'git show-branch' (-g|--reflog)[=<n>[,<base>]] [--list] [<ref>] 16 17DESCRIPTION 18----------- 19 20Shows the commit ancestry graph starting from the commits named 21with <rev>s or <globs>s (or all refs under $GIT_DIR/refs/heads 22and/or $GIT_DIR/refs/tags) semi-visually. 23 24It cannot show more than 29 branches and commits at a time. 25 26It uses `showbranch.default` multi-valued configuration items if 27no <rev> nor <glob> is given on the command line. 28 29 30OPTIONS 31------- 32<rev>:: 33 Arbitrary extended SHA1 expression (see linkgit:git-rev-parse[1]) 34 that typically names a branch head or a tag. 35 36<glob>:: 37 A glob pattern that matches branch or tag names under 38 $GIT_DIR/refs. For example, if you have many topic 39 branches under $GIT_DIR/refs/heads/topic, giving 40 `topic/*` would show all of them. 41 42-r:: 43--remotes:: 44 Show the remote-tracking branches. 45 46-a:: 47--all:: 48 Show both remote-tracking branches and local branches. 49 50--current:: 51 With this option, the command includes the current 52 branch to the list of revs to be shown when it is not 53 given on the command line. 54 55--topo-order:: 56 By default, the branches and their commits are shown in 57 reverse chronological order. This option makes them 58 appear in topological order (i.e., descendant commits 59 are shown before their parents). 60 61--sparse:: 62 By default, the output omits merges that are reachable 63 from only one tip being shown. This option makes them 64 visible. 65 66--more=<n>:: 67 Usually the command stops output upon showing the commit 68 that is the common ancestor of all the branches. This 69 flag tells the command to go <n> more common commits 70 beyond that. When <n> is negative, display only the 71 <reference>s given, without showing the commit ancestry 72 tree. 73 74--list:: 75 Synonym to `--more=-1` 76 77--merge-base:: 78 Instead of showing the commit list, just act like the 79 'git-merge-base -a' command, except that it can accept 80 more than two heads. 81 82--independent:: 83 Among the <reference>s given, display only the ones that 84 cannot be reached from any other <reference>. 85 86--no-name:: 87 Do not show naming strings for each commit. 88 89--sha1-name:: 90 Instead of naming the commits using the path to reach 91 them from heads (e.g. "master~2" to mean the grandparent 92 of "master"), name them with the unique prefix of their 93 object names. 94 95--topics:: 96 Shows only commits that are NOT on the first branch given. 97 This helps track topic branches by hiding any commit that 98 is already in the main line of development. When given 99 "git show-branch --topics master topic1 topic2", this 100 will show the revisions given by "git rev-list {caret}master 101 topic1 topic2" 102 103-g:: 104--reflog[=<n>[,<base>]] [<ref>]:: 105 Shows <n> most recent ref-log entries for the given 106 ref. If <base> is given, <n> entries going back from 107 that entry. <base> can be specified as count or date. 108 When no explicit <ref> parameter is given, it defaults to the 109 current branch (or `HEAD` if it is detached). 110 111--color:: 112 Color the status sign (one of these: `*` `!` `+` `-`) of each commit 113 corresponding to the branch it's in. 114 115--no-color:: 116 Turn off colored output, even when the configuration file gives the 117 default to color output. 118 119Note that --more, --list, --independent and --merge-base options 120are mutually exclusive. 121 122 123OUTPUT 124------ 125Given N <references>, the first N lines are the one-line 126description from their commit message. The branch head that is 127pointed at by $GIT_DIR/HEAD is prefixed with an asterisk `*` 128character while other heads are prefixed with a `!` character. 129 130Following these N lines, one-line log for each commit is 131displayed, indented N places. If a commit is on the I-th 132branch, the I-th indentation character shows a `+` sign; 133otherwise it shows a space. Merge commits are denoted by 134a `-` sign. Each commit shows a short name that 135can be used as an extended SHA1 to name that commit. 136 137The following example shows three branches, "master", "fixes" 138and "mhf": 139 140------------------------------------------------ 141$ git show-branch master fixes mhf 142* [master] Add 'git show-branch'. 143 ! [fixes] Introduce "reset type" flag to "git reset" 144 ! [mhf] Allow "+remote:local" refspec to cause --force when fetching. 145--- 146 + [mhf] Allow "+remote:local" refspec to cause --force when fetching. 147 + [mhf~1] Use git-octopus when pulling more than one heads. 148 + [fixes] Introduce "reset type" flag to "git reset" 149 + [mhf~2] "git fetch --force". 150 + [mhf~3] Use .git/remote/origin, not .git/branches/origin. 151 + [mhf~4] Make "git pull" and "git fetch" default to origin 152 + [mhf~5] Infamous 'octopus merge' 153 + [mhf~6] Retire git-parse-remote. 154 + [mhf~7] Multi-head fetch. 155 + [mhf~8] Start adding the $GIT_DIR/remotes/ support. 156*++ [master] Add 'git show-branch'. 157------------------------------------------------ 158 159These three branches all forked from a common commit, [master], 160whose commit message is "Add \'git show-branch\'". The "fixes" 161branch adds one commit "Introduce "reset type" flag to "git reset"". 162The "mhf" branch adds many other commits. The current branch 163is "master". 164 165 166EXAMPLE 167------- 168 169If you keep your primary branches immediately under 170`$GIT_DIR/refs/heads`, and topic branches in subdirectories of 171it, having the following in the configuration file may help: 172 173------------ 174[showbranch] 175 default = --topo-order 176 default = heads/* 177 178------------ 179 180With this, `git show-branch` without extra parameters would show 181only the primary branches. In addition, if you happen to be on 182your topic branch, it is shown as well. 183 184------------ 185$ git show-branch --reflog="10,1 hour ago" --list master 186------------ 187 188shows 10 reflog entries going back from the tip as of 1 hour ago. 189Without `--list`, the output also shows how these tips are 190topologically related with each other. 191 192 193Author 194------ 195Written by Junio C Hamano <gitster@pobox.com> 196 197 198Documentation 199-------------- 200Documentation by Junio C Hamano. 201 202 203GIT 204--- 205Part of the linkgit:git[1] suite