mirror of
https://github.com/git/git
synced 2024-10-28 19:25:47 +00:00
a58088abe2
Signed-off-by: Justin Lebar <jlebar@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
204 lines
6.4 KiB
Text
204 lines
6.4 KiB
Text
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 <globs>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 to 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
|
|
<reference>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 <reference>s given, display only the ones that
|
|
cannot be reached from any other <reference>.
|
|
|
|
--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 <references>, 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, 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 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 '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 {apostrophe}git show-branch{apostrophe}".
|
|
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".
|
|
|
|
|
|
EXAMPLE
|
|
-------
|
|
|
|
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 with each other.
|
|
|
|
GIT
|
|
---
|
|
Part of the linkgit:git[1] suite
|