'\" t .\" Title: git-show-branch .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.79.1 .\" Date: 09/28/2018 .\" Manual: Git Manual .\" Source: Git 2.11.0 .\" Language: English .\" .TH "GIT\-SHOW\-BRANCH" "1" "09/28/2018" "Git 2\&.11\&.0" "Git Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" git-show-branch \- Show branches and their commits .SH "SYNOPSIS" .sp .nf \fIgit show\-branch\fR [\-a|\-\-all] [\-r|\-\-remotes] [\-\-topo\-order | \-\-date\-order] [\-\-current] [\-\-color[=] | \-\-no\-color] [\-\-sparse] [\-\-more= | \-\-list | \-\-independent | \-\-merge\-base] [\-\-no\-name | \-\-sha1\-name] [\-\-topics] [( | )\&...] \fIgit show\-branch\fR (\-g|\-\-reflog)[=[,]] [\-\-list] [] .fi .sp .SH "DESCRIPTION" .sp Shows the commit ancestry graph starting from the commits named with s or s (or all refs under refs/heads and/or refs/tags) semi\-visually\&. .sp It cannot show more than 29 branches and commits at a time\&. .sp It uses \fBshowbranch\&.default\fR multi\-valued configuration items if no or is given on the command line\&. .SH "OPTIONS" .PP .RS 4 Arbitrary extended SHA\-1 expression (see \fBgitrevisions\fR(7)) that typically names a branch head or a tag\&. .RE .PP .RS 4 A glob pattern that matches branch or tag names under refs/\&. For example, if you have many topic branches under refs/heads/topic, giving \fBtopic/*\fR would show all of them\&. .RE .PP \-r, \-\-remotes .RS 4 Show the remote\-tracking branches\&. .RE .PP \-a, \-\-all .RS 4 Show both remote\-tracking branches and local branches\&. .RE .PP \-\-current .RS 4 With this option, the command includes the current branch to the list of revs to be shown when it is not given on the command line\&. .RE .PP \-\-topo\-order .RS 4 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)\&. .RE .PP \-\-date\-order .RS 4 This option is similar to \fB\-\-topo\-order\fR in the sense that no parent comes before all of its children, but otherwise commits are ordered according to their commit date\&. .RE .PP \-\-sparse .RS 4 By default, the output omits merges that are reachable from only one tip being shown\&. This option makes them visible\&. .RE .PP \-\-more= .RS 4 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 more common commits beyond that\&. When is negative, display only the s given, without showing the commit ancestry tree\&. .RE .PP \-\-list .RS 4 Synonym to \fB\-\-more=\-1\fR .RE .PP \-\-merge\-base .RS 4 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 \fBgit-merge-base\fR(1) handles the case of three or more commits\&. .RE .PP \-\-independent .RS 4 Among the s given, display only the ones that cannot be reached from any other \&. .RE .PP \-\-no\-name .RS 4 Do not show naming strings for each commit\&. .RE .PP \-\-sha1\-name .RS 4 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\&. .RE .PP \-\-topics .RS 4 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 ^master topic1 topic2" .RE .PP \-g, \-\-reflog[=[,]] [] .RS 4 Shows most recent ref\-log entries for the given ref\&. If is given, entries going back from that entry\&. can be specified as count or date\&. When no explicit parameter is given, it defaults to the current branch (or \fBHEAD\fR if it is detached)\&. .RE .PP \-\-color[=] .RS 4 Color the status sign (one of these: \fB*\fR \fB!\fR \fB+\fR \fB\-\fR) of each commit corresponding to the branch it\(cqs in\&. The value must be always (the default), never, or auto\&. .RE .PP \-\-no\-color .RS 4 Turn off colored output, even when the configuration file gives the default to color output\&. Same as \fB\-\-color=never\fR\&. .RE .sp Note that \-\-more, \-\-list, \-\-independent and \-\-merge\-base options are mutually exclusive\&. .SH "OUTPUT" .sp Given N , 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 \fB*\fR character while other heads are prefixed with a \fB!\fR character\&. .sp Following these N lines, 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 \fB+\fR sign; otherwise it shows a space\&. Merge commits are denoted by a \fB\-\fR sign\&. Each commit shows a short name that can be used as an extended SHA\-1 to name that commit\&. .sp The following example shows three branches, "master", "fixes" and "mhf": .sp .if n \{\ .RS 4 .\} .nf $ git show\-branch master fixes mhf * [master] Add \*(Aqgit show\-branch\*(Aq\&. ! [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 heads\&. + [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 \*(Aqoctopus merge\*(Aq + [mhf~6] Retire git\-parse\-remote\&. + [mhf~7] Multi\-head fetch\&. + [mhf~8] Start adding the $GIT_DIR/remotes/ support\&. *++ [master] Add \*(Aqgit show\-branch\*(Aq\&. .fi .if n \{\ .RE .\} .sp .sp These three branches all forked from a common commit, [master], whose commit message is "Add \*(Aqgit show\-branch\*(Aq"\&. 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"\&. .SH "EXAMPLE" .sp If you keep your primary branches immediately under \fBrefs/heads\fR, and topic branches in subdirectories of it, having the following in the configuration file may help: .sp .if n \{\ .RS 4 .\} .nf [showbranch] default = \-\-topo\-order default = heads/* .fi .if n \{\ .RE .\} .sp .sp With this, \fBgit show\-branch\fR 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\&. .sp .if n \{\ .RS 4 .\} .nf $ git show\-branch \-\-reflog="10,1 hour ago" \-\-list master .fi .if n \{\ .RE .\} .sp .sp shows 10 reflog entries going back from the tip as of 1 hour ago\&. Without \fB\-\-list\fR, the output also shows how these tips are topologically related with each other\&. .SH "GIT" .sp Part of the \fBgit\fR(1) suite