| 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 29 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.txt[] |
| |
| include::config/showbranch.txt[] |
| |
| GIT |
| --- |
| Part of the linkgit:git[1] suite |