| git-show-branch(1) | |
| ================== | |
| NAME | |
| ---- | |
| git-show-branch - Show branches and their commits | |
| SYNOPSIS | |
| -------- | |
| [verse] | |
| 'git show-branch' [-a | --all] [-r | --remotes] [--topo-order | --date-order] | |
| [--current] [--color[=<when>] | --no-color] [--sparse] | |
| [--more=<n> | --list | --independent | --merge-base] | |
| [--no-name | --sha1-name] [--topics] | |
| [(<rev> | <glob>)...] | |
| 'git show-branch' (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>] | |
| DESCRIPTION | |
| ----------- | |
| Shows the commit ancestry graph starting from the commits named | |
| with <rev>s or <glob>s (or all refs under refs/heads | |
| and/or refs/tags) semi-visually. | |
| It cannot show more than 26 branches and commits at a time. | |
| It uses `showbranch.default` multi-valued configuration items if | |
| no <rev> or <glob> is given on the command line. | |
| OPTIONS | |
| ------- | |
| <rev>:: | |
| Arbitrary extended SHA-1 expression (see linkgit:gitrevisions[7]) | |
| that typically names a branch head or a tag. | |
| <glob>:: | |
| A glob pattern that matches branch or tag names under | |
| refs/. For example, if you have many topic | |
| branches under refs/heads/topic, giving | |
| `topic/*` would show all of them. | |
| -r:: | |
| --remotes:: | |
| Show the remote-tracking branches. | |
| -a:: | |
| --all:: | |
| Show both remote-tracking branches and local branches. | |
| --current:: | |
| With this option, the command includes the current | |
| branch in the list of revs to be shown when it is not | |
| given on the command line. | |
| --topo-order:: | |
| By default, the branches and their commits are shown in | |
| reverse chronological order. This option makes them | |
| appear in topological order (i.e., descendant commits | |
| are shown before their parents). | |
| --date-order:: | |
| This option is similar to `--topo-order` in the sense that no | |
| parent comes before all of its children, but otherwise commits | |
| are ordered according to their commit date. | |
| --sparse:: | |
| By default, the output omits merges that are reachable | |
| from only one tip being shown. This option makes them | |
| visible. | |
| --more=<n>:: | |
| Usually the command stops output upon showing the commit | |
| that is the common ancestor of all the branches. This | |
| flag tells the command to go <n> more common commits | |
| beyond that. When <n> is negative, display only the | |
| <ref>s given, without showing the commit ancestry tree. | |
| --list:: | |
| Synonym to `--more=-1` | |
| --merge-base:: | |
| Instead of showing the commit list, determine possible | |
| merge bases for the specified commits. All merge bases | |
| will be contained in all specified commits. This is | |
| different from how linkgit:git-merge-base[1] handles | |
| the case of three or more commits. | |
| --independent:: | |
| Among the <ref>s given, display only the ones that cannot be | |
| reached from any other <ref>. | |
| --no-name:: | |
| Do not show naming strings for each commit. | |
| --sha1-name:: | |
| Instead of naming the commits using the path to reach | |
| them from heads (e.g. "master~2" to mean the grandparent | |
| of "master"), name them with the unique prefix of their | |
| object names. | |
| --topics:: | |
| Shows only commits that are NOT on the first branch given. | |
| This helps track topic branches by hiding any commit that | |
| is already in the main line of development. When given | |
| "git show-branch --topics master topic1 topic2", this | |
| will show the revisions given by "git rev-list {caret}master | |
| topic1 topic2" | |
| -g:: | |
| --reflog[=<n>[,<base>]] [<ref>]:: | |
| Shows <n> most recent ref-log entries for the given | |
| ref. If <base> is given, <n> entries going back from | |
| that entry. <base> can be specified as count or date. | |
| When no explicit <ref> parameter is given, it defaults to the | |
| current branch (or `HEAD` if it is detached). | |
| --color[=<when>]:: | |
| Color the status sign (one of these: `*` `!` `+` `-`) of each commit | |
| corresponding to the branch it's in. | |
| The value must be always (the default), never, or auto. | |
| --no-color:: | |
| Turn off colored output, even when the configuration file gives the | |
| default to color output. | |
| Same as `--color=never`. | |
| Note that --more, --list, --independent, and --merge-base options | |
| are mutually exclusive. | |
| OUTPUT | |
| ------ | |
| Given N <ref>s, the first N lines are the one-line description from | |
| their commit message. The branch head that is pointed at by | |
| $GIT_DIR/HEAD is prefixed with an asterisk `*` character while other | |
| heads are prefixed with a `!` character. | |
| Following these N lines, a one-line log for each commit is | |
| displayed, indented N places. If a commit is on the I-th | |
| branch, the I-th indentation character shows a `+` sign; | |
| otherwise it shows a space. Merge commits are denoted by | |
| a `-` sign. Each commit shows a short name that | |
| can be used as an extended SHA-1 to name that commit. | |
| The following example shows three branches, "master", "fixes", | |
| and "mhf": | |
| ------------------------------------------------ | |
| $ git show-branch master fixes mhf | |
| * [master] Add 'git show-branch'. | |
| ! [fixes] Introduce "reset type" flag to "git reset" | |
| ! [mhf] Allow "+remote:local" refspec to cause --force when fetching. | |
| --- | |
| + [mhf] Allow "+remote:local" refspec to cause --force when fetching. | |
| + [mhf~1] Use git-octopus when pulling more than one head. | |
| + [fixes] Introduce "reset type" flag to "git reset" | |
| + [mhf~2] "git fetch --force". | |
| + [mhf~3] Use .git/remote/origin, not .git/branches/origin. | |
| + [mhf~4] Make "git pull" and "git fetch" default to origin | |
| + [mhf~5] Infamous 'octopus merge' | |
| + [mhf~6] Retire git-parse-remote. | |
| + [mhf~7] Multi-head fetch. | |
| + [mhf~8] Start adding the $GIT_DIR/remotes/ support. | |
| *++ [master] Add 'git show-branch'. | |
| ------------------------------------------------ | |
| These three branches all forked from a common commit, [master], | |
| whose commit message is "Add \'git show-branch'". | |
| The "fixes" branch adds one commit "Introduce "reset type" flag to | |
| "git reset"". The "mhf" branch adds many other commits. | |
| The current branch is "master". | |
| EXAMPLES | |
| -------- | |
| If you keep your primary branches immediately under | |
| `refs/heads`, and topic branches in subdirectories of | |
| it, having the following in the configuration file may help: | |
| ------------ | |
| [showbranch] | |
| default = --topo-order | |
| default = heads/* | |
| ------------ | |
| With this, `git show-branch` without extra parameters would show | |
| only the primary branches. In addition, if you happen to be on | |
| your topic branch, it is shown as well. | |
| ------------ | |
| $ git show-branch --reflog="10,1 hour ago" --list master | |
| ------------ | |
| shows 10 reflog entries going back from the tip as of 1 hour ago. | |
| Without `--list`, the output also shows how these tips are | |
| topologically related to each other. | |
| CONFIGURATION | |
| ------------- | |
| include::includes/cmd-config-section-all.adoc[] | |
| include::config/showbranch.adoc[] | |
| GIT | |
| --- | |
| Part of the linkgit:git[1] suite |