directory search
Guides gitattributes giteveryday gitglossary gitignore gitmodules gitrevisions gittutorial gitworkflows Administration git archive git bundle git clean git filter-branch git fsck git gc git instaweb git reflog Basic Snapshotting git add git commit git diff git mv git reset git rm git status Branching and Merging git branch git checkout git log git merge git mergetool git stash git tag Debugging git bisect git blame git grep Email git am git format-patch git request-pull git send-email External Systems git fast-import git svn Getting and Creating Projects git clone git init Git git annotate git archimport git bisect-lk2009 git check-attr git check-mailmap git check-ref-format git checkout-index git cherry git citool git column git credential git credential-cache git credential-store git cvsexportcommit git cvsimport git cvsserver git diff-files git diff-tree git difftool git fast-export git fetch-pack git fmt-merge-msg git get-tar-commit-id git gui git http-backend git http-fetch git http-push git imap-send git index-pack git interpret-trailers git ls-remote git ls-tree git mailinfo git mailsplit git merge-file git merge-index git merge-one-file git merge-tree git mktag git mktree git name-rev git notes git p4 git pack-objects git pack-redundant git pack-refs git parse-remote git patch-id git prune git prune-packed git quiltimport git receive-pack git remote-ext git remote-fd git remote-testgit git repack git replace git rerere git send-pack git sh-i18n git sh-setup git shell git show-branch git show-index git stripspace git unpack-file git unpack-objects git upload-archive git upload-pack git var git verify-commit git verify-tag git whatchanged git worktree Inspection and Comparison git describe git shortlog git show Miscellaneous api credentials api index gitcli gitcore tutorial gitcredentials gitcvs migration gitdiffcore githooks gitk gitnamespaces gitremote helpers gitrepository layout gitsubmodules gittutorial 2 gitweb gitweb.conf pack format User Manual Patching git apply git cherry-pick git rebase git revert Plumbing Commands git cat-file git check-ignore git commit-tree git count-objects git diff-index git for-each-ref git hash-object git ls-files git merge-base git read-tree git rev-list git rev-parse git show-ref git symbolic-ref git update-index git update-ref git verify-pack git write-tree Server Admin git daemon git update-server-info Setup and Config git git config git help Sharing and Updating Projects git fetch git pull git push git remote git submodule
characters

名称

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

Previous article: Next article: