簡體中文 ▾ 主題 ▾ 最新版本 ▾ git-show-branch 最後更新於 2.46.0

名稱

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> 或 <glob>(或 refs/heads 和/或 refs/tags 下的所有引用)命名的提交開始的提交祖先圖。

它一次最多隻能顯示 26 個分支和提交。

如果在命令列中未指定 <rev> 或 <glob>,它將使用 showbranch.default 多值配置項。

選項

<rev>

任意擴充套件的 SHA-1 表示式(參見 gitrevisions[7]),通常命名分支頭或標籤。

<glob>

一個全域性模式,匹配 refs/ 下的分支或標籤名。例如,如果您在 refs/heads/topic 下有許多主題分支,指定 topic/* 將顯示所有這些分支。

-r
--remotes

顯示遠端跟蹤分支。

-a
--all

顯示遠端跟蹤分支和本地分支。

--current

使用此選項,當未在命令列上指定時,該命令會將當前分支包含在要顯示的修訂列表(revs)中。

--topo-order

預設情況下,分支及其提交按逆時間順序顯示。此選項使它們按拓撲順序顯示(即,後代提交在其父提交之前顯示)。

--date-order

此選項與 --topo-order 類似,即沒有父提交在其所有子提交之前出現,但除此之外,提交是根據其提交日期排序的。

--sparse

預設情況下,輸出會省略僅從一個顯示的尖端可達的合併。此選項使它們可見。

--more=<n>

通常,命令在顯示所有分支的共同祖先提交時停止輸出。此標誌告訴命令在該共同祖先提交之後再顯示 <n> 個共同提交。當 <n> 為負數時,僅顯示給定的 <ref>,而不顯示提交祖先樹。

--list

--more=-1 的同義詞

--merge-base

不是顯示提交列表,而是確定指定提交的可能合併基礎。所有合併基礎都將包含在所有指定的提交中。這與 git-merge-base[1] 處理三個或更多提交的情況不同。

--independent

在給定的 <ref>s 中,僅顯示無法從任何其他 <ref> 訪問的那些。

--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>]

顯示給定引用的最近 <n> 個引用日誌條目。如果指定了 <base>,則從該條目往前數 <n> 個條目。<base> 可以指定為計數或日期。如果未給定顯式 <ref> 引數,則預設為當前分支(如果處於分離 HEAD 狀態,則為 HEAD)。

--color[=<when>]

根據每個提交所在的分支,為其狀態符號(以下之一:* ! + -)著色。值必須為 always(預設)、never 或 auto。

--no-color

關閉彩色輸出,即使配置檔案預設啟用彩色輸出。與 --color=never 相同。

請注意,--more、--list、--independent 和 --merge-base 選項是互斥的。

輸出

給定 N 個 <ref>,前 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] 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 head.
 +  [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'"。"fixes" 分支添加了一個提交 "Introduce "reset type" flag to "git reset""。"mhf" 分支添加了許多其他提交。當前分支是 "master"。

示例

如果您將主分支直接放在 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 時,輸出還會顯示這些尖端在拓撲上如何相互關聯。

配置

本節中以下所有內容均從 git-config[1] 文件中選擇性地包含。內容與彼處相同:

showBranch.default

git-show-branch[1] 的預設分支集。參見 git-show-branch[1]

GIT

Git[1] 套件的一部分

scroll-to-top