git show-branch

优质
小牛编辑
123浏览
2023-12-01

名称

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,输出还会显示这些提示如何在拓扑学上彼此相关。