Git
简体中文 ▾ Topics ▾ Latest version ▾ git-show-branch last updated in 2.44.0

名称

git-show-branch - 显示分支及其提交情况

概述

git show-branch [-a|--all] [-r|--remotes] [--topo-order | --date-order]
		[--current] [--color[=<合适>] | --no-color] [--sparse]
		[--more=<n> | --list | --independent | --merge-base]
		[--no-name | --sha1-name] [--topics]
		[(<修订> | <通配符>)…​]
git show-branch (-g|--reflog)[=<n>[,<基础>]] [--list] [<引用>]

描述

以半直观的方式显示从以 <rev>s 或 <通配符>s 命名的提交(或 refs/heads 和/或 refs/tags 下的所有引用)开始的提交祖先图。

它不能同时显示超过 29 个分支和提交。

如果命令行中没有给出 <rev> 或 <通配符>,它会使用 showbranch.default 多值配置项。

选项

<rev>

任意扩展的 SHA-1 表达式(参见 gitrevisions[7]),通常用于命名分支头或标签。

<通配符>

匹配 refs/ 下分支或标记名称的通配模式。 例如,如果在 refs/heads/topic 下有许多主题分支,那么输入 topic/* 就会显示所有分支。

-r
--remotes

显示远程跟踪分支。

-a
--all

同时显示远程跟踪分支和本地分支。

--current

使用该选项后,当命令行中没有给出当前分支的版本号时,命令会将该分支包含在要显示的版本号列表中。

--topo-order

默认情况下,分支及其提交按时间倒序显示。 此选项可使它们按拓扑顺序显示(即子分支提交显示在父分支之前)。

--date-order

该选项类似于 --topo-order,即父提交不会排在所有子提交之前,但也会根据提交日期对提交进行排序。

--sparse

默认情况下,输出会忽略只显示一个提示的合并。 该选项将使它们可见。

--more=<n>

通常,命令会在显示所有分支的共同祖先提交后停止输出。 此标记会告诉命令在此基础上再显示 <n> 次共同提交。 当 <n> 为负数时,只显示给出的 <引用>,而不显示提交祖先树。

--list

--more=-1

--merge-base

不显示提交列表,而是确定指定提交的可能合并库。所有合并库都将包含在所有指定的提交中。这与 git-merge-base[1] 处理三个或更多提交的方式不同。

--independent

在给出的多个 <引用> 中,只显示无法从其他 <引用> 到达的 <引用> 。

--no-name

不显示每次提交的命名字符串。

--sha1-name

在命名提交时,不要使用从头到尾的路径(例如,"master~2" 表示 "master" 的祖先),而是使用对象名称的唯一前缀。

--topics

只显示不在第一个分支上的提交。 这有助于跟踪主题分支,隐藏任何已在主线开发中的提交。 当给出 "git show-branch --topics master topic1 topic2" 时,将显示 "git rev-list ^master topic1 topic2" 给出的修订版本

-g
--reflog[=<n>[,<基础>]] [<引用>]

显示给定引用的 <n> 条最新引用日志记录。 如果给定 <基点>,则显示从该条目开始的 <n> 条目。 <基点> 可以指定为计数或日期。 如果没有给出明确的 <引用> 参数,则默认为当前分支(如果是分离分支,则为 HEAD)。

--color[=<when>]

为每个提交的状态符号(其中之一:*`!```+```-`)着色,与它所在的分支相对应。 值必须是 always(总是)(默认值)、never(从不)或 auto(自动)。

--no-color

关闭彩色输出,即使配置文件默认为彩色输出。 与 --color=never 相同。

请注意,--more、--list、--independent 和 --merge-base 选项是互斥的。

输出

给定 N 个 <引用>,前 N 行是其提交信息中的单行描述。$GIT_DIR/HEAD 所指向的分支头前缀为星号 * 字符,而其他分支头前缀为 ! 字符。

在这 N 行之后,会显示每个提交的单行日志,缩进 N 位。 如果提交在第 I 个分支上,则第 I 个缩进字符显示为 + 号,否则显示为空格。 合并提交用 - 符号表示。 每个提交都会显示一个简短的名称,可以作为扩展 SHA-1 来命名该提交。

下面的示例显示了三个分支:"master"、"fixes" 和 "mhf":

$ git show-branch master fixes mhf
* [master] Add 'git show-branch'.
 ! [fixes] 在 "git reset "中引入 "reset type" 标志
  ! [mhf] 允许 "+remote:local" 引用规范在获取数据时导致 --force。
---
  + [mhf] 允许 "+remote:local" 引用规范在获取时导致 --force。
  + [mhf~1] 拉取多个头时使用 git-octopus。
 + [fixes] 在 "git reset" 中引入 "reset type" 标志
  + [mhf~2] "git fetch --force".
  + [mhf~3] 使用 .git/remote/origin,而不是 .git/branches/origin。
  + [mhf~4] 将 "git pull" 和 "git fetch" 默认为 origin
  + [mhf~5] 臭名昭著的 ‘章鱼(多路)合并’
  + [mhf~6] 重试 git-parse-remote。
  + [mhf~7] 获取多个头
  + [mhf~8] 开始添加 $GIT_DIR/remotes/ 支持。
*++ [master] 添加 'git show-branch'。

这三个分支都分叉自一个共同的提交 [master],其提交信息是 “添加 'git show-branch'”。 "fixes" 分支增加了一个提交 "在 "git reset "中引入 "reset type" 标志"。"mhf" 分支增加了许多其他提交。 当前分支是 "master"。

实例

如果你将主分支放在 refs/heads 下,而主题分支放在其子目录中,那么在配置文件中加入以下内容可能会有所帮助:

[showbranch]
	default = --topo-order
	default = heads/*

这样,不带额外参数的 git show-branch 就只能显示主分支。 此外,如果您恰好在您的主题分支上,它也会显示出来。

$ git show-branch --reflog="10,1 hour ago" --list master

显示了 10 条从 1 小时前的提示开始的引用日志条目。 如果不使用 --list,输出结果还会显示这些提示之间的拓扑关系。

配置

Warning

Missing zh_HANS-CN/includes/cmd-config-section-all.txt

See original version for this content.

Warning

Missing zh_HANS-CN/config/showbranch.txt

See original version for this content.

GIT

属于 git[1] 文档

scroll-to-top