X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=Documentation%2Fgit-show-branch.txt;h=f115b45ef61567b18f6686d12dd168e68f83cb02;hb=HEAD;hp=71d5ba8fd78dfbbdefde52f3b1bae73a0e52e50b;hpb=f5e375c9a99d731c05eef701f119da85d62fc158;p=git.git diff --git a/Documentation/git-show-branch.txt b/Documentation/git-show-branch.txt index 71d5ba8f..f115b45e 100644 --- a/Documentation/git-show-branch.txt +++ b/Documentation/git-show-branch.txt @@ -1,60 +1,110 @@ git-show-branch(1) ================== -v0.99.4, Aug 2005 NAME ---- -git-show-branch - Show branches and their commits. +git-show-branch - Show branches and their commits SYNOPSIS -------- -'git show-branch [--all] [--heads] [--tags] [--more=] [--merge-base] ...' +[verse] +'git-show-branch' [--all] [--heads] [--tags] [--topo-order] [--current] + [--more= | --list | --independent | --merge-base] + [--no-name | --sha1-name] [ | ]... DESCRIPTION ----------- -Shows the head commits from the named (or all refs under -$GIT_DIR/refs/heads), and displays concise list of commit logs -to show their relationship semi-visually. + +Shows the commit ancestry graph starting from the commits named +with s or s (or all refs under $GIT_DIR/refs/heads +and/or $GIT_DIR/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 nor is given on the command line. + OPTIONS ------- -:: - Name of the reference under $GIT_DIR/refs/. +:: + Arbitrary extended SHA1 expression (see `git-rev-parse`) + that typically names a branch HEAD or a tag. + +:: + A glob pattern that matches branch or tag names under + $GIT_DIR/refs. For example, if you have many topic + branches under $GIT_DIR/refs/heads/topic, giving + `topic/*` would show all of them. --all --heads --tags:: Show all refs under $GIT_DIR/refs, $GIT_DIR/refs/heads, and $GIT_DIR/refs/tags, respectively. +--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). + --more=:: 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 commits beyond that. + 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. + +--list:: + Synonym to `--more=-1` --merge-base:: Instead of showing the commit list, just act like the - 'git-merge-base' command except that it can accept more - than two heads. + 'git-merge-base -a' command, except that it can accept + more than two heads. + +--independent:: + Among the s given, display only the ones that + cannot be reached from any other . + +--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. + +Note that --more, --list, --independent and --merge-base options +are mutually exclusive. OUTPUT ------ 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 '*' -character while other heads are prefixed with a '!' character. +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. Each commit shows a short name that -can be used as an exended SHA1 to name that commit. +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 SHA1 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'. +* [master] Add 'git show-branch'. ! [fixes] Introduce "reset type" flag to "git reset" ! [mhf] Allow "+remote:local" refspec to cause --force when fetching. --- @@ -68,29 +118,34 @@ $ git show-branch master fixes mhf + [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'. +*++ [master] Add 'git show-branch'. ------------------------------------------------ These three branches all forked from a common commit, [master], whose commit message is "Add 'git show-branch'. "fixes" branch adds one commit 'Introduce "reset type"'. "mhf" branch has many -other commits. +other commits. The current branch is "master". + + +EXAMPLE +------- + +If you keep your primary branches immediately under +`$GIT_DIR/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. -When only one head is given, the output format changes slightly -to conserve space. The '+' sign to show which commit is -reachable from which head and the first N lines to show the list -of heads being displayed are both meaningless so they are -omitted. Also the label given to each commit does not repeat -the name of the branch because it is obvious. ------------------------------------------------- -$ git show-branch --more=4 master -[master] Add 'git show-branch'. -[~1] Add a new extended SHA1 syntax ~ -[~2] Fix "git-diff-script A B" -[~3] git-ls-files: generalized pathspecs -[~4] Make "git-ls-files" work in subdirectories ------------------------------------------------- Author ------ @@ -104,4 +159,4 @@ Documentation by Junio C Hamano. GIT --- -Part of the link:git.html[git] suite +Part of the gitlink:git[7] suite