git show-branch
名称
git-show-branch - 显示分支及其提交
概要
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>]
描述
以半可视方式显示以<rev> s或<globs>s(或refs / heads和/或refs / tags下的所有 ref)命名的提交开始的提交血统图。
它一次不能显示超过29个分支和提交。
如果在命令行上没有给出<rev>或<glob>,它将使用showbranch.default
多值配置项。
选项
<rev>
任意扩展的 SHA-1表达式(参见 gitrevisions [7]),通常命名分支头或标签。
<glob>
与 refs /下的分支或标签名称匹配的 glob 模式。例如,如果您在 refs / heads / topic 下有许多主题分支,topic/*
则会显示所有主题分支。
-r --remotes
显示远程跟踪分支。
-a --all
显示远程跟踪分支和本地分支。
--current
使用此选项时,该命令会将当前分支包含在未在命令行中提供的 rev 列表中。
--topo-order
默认情况下,分支及其提交按反向时间顺序显示。这个选项使得它们以拓扑顺序出现(即,后代提交显示在他们的父母之前)。
--date-order
这个选项类似于--topo-order
没有父节点在它的所有子节点之前出现的意义,但其他情况下,根据提交日期排序。
--sparse
默认情况下,输出省略仅显示一个提示可访问的合并。该选项使它们可见。
--more=<n>
通常,该命令在显示所有分支的共同祖先的提交时停止输出。这个标志告诉命令去超越那个<n>更常见的提交。当<n>为负数时,只显示给定的<reference>,而不显示提交祖先树。
--list
与--more=-1
同义
--merge-base
不是显示提交列表,而是确定指定提交的可能合并基础。所有合并基数将包含在所有指定的提交中。这与 git-merge-base [1]处理三个或更多提交的情况不同。
--independent
在给出的<reference>中,只显示无法从其他任何<reference>到达的参考。
--no-name
不要为每个提交显示命名字符串。
--sha1-name
不是使用从头部到达它们的路径命名提交(例如,“master〜2”表示“master”的祖父),用它们的对象名称的唯一前缀命名它们。
--topics
只显示不在第一个分支上的提交。这有助于通过隐藏任何已经在开发主线中的提交来跟踪主题分支。当给出“git show-branch --topics master topic1 topic2”时,这将显示由“git rev-list ^ master topic1 topic2”给出的修订版本
-g --reflog=<n>[,<base>]
显示给定 ref 的最近的 ref-log 条目。如果给出<base>,则从该条目返回的<n>条目。可以将<base>指定为计数或日期。当没有给出明确的<ref>参数时,它默认为当前分支(或者HEAD
如果分离)。
--color=<when>
对与其所在分支相对应的每个提交的状态标志(以下*
!
+
-
之一)进行着色。该值必须始终为(缺省值),从不为或自动。
--no-color
关闭彩色输出,即使配置文件将默认设置为彩色输出。和--color=never
一样。
请注意,--more,--list,--independent和--merge-base 选项是互斥的。
产出
给定 N <引用>,前 N 行是它们提交消息的单行描述。$ GIT_DIR / HEAD指向的分支头以星号*
字符为前缀,而其他头以!
字符为前缀。
在这 N 行之后,显示每个提交的单行日志,缩进 N 个位置。如果提交位于第I个分支上,则第I个缩进字符将显示一个+
符号; 否则显示一个空格。合并提交由-
符号表示。每个提交都显示一个短名称,可用作扩展 SHA-1来命名该提交。
以下示例显示了三个分支,“主”,“修复”和“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'.
这三个分支全部从一个普通的提交中分离出来,master,它的提交信息是“Add {撇号} git show-branch {撇号}”。“修复”分支添加一个提交“介绍”重置类型“标志为”git reset“”。“mhf”分支添加了许多其他提交。当前分支是“主”。
示例
如果您立即将主要分支保留refs/heads
在其子分区中,并且在其子目录中保留主题分支,那么在配置文件中包含以下内容可能会有所帮助:
[showbranch] default = --topo-order default = heads/*
有了这个,git show-branch
没有额外的参数将只显示主分支。另外,如果你碰巧在你的主题分支上,它也会显示出来。
$ git show-branch --reflog="10,1 hour ago" --list master
显示从1小时前的小费返回的10条 reflog 条目。如果没有--list
,输出还会显示这些提示如何在拓扑学上彼此相关。