git-show
git-show とは
git-show
は、blob、ツリー、タグ、コミットなどの Git オブジェクトの広範な詳細を表示するために使用されるコマンドラインユーティリティです。git-show
の動作は、オブジェクトタイプごとに異なります。
タグにはタグメッセージと、タグに含まれるその他のオブジェクトが表示されます。ツリーにはツリー内のオブジェクトの名前とコンテンツが表示されます。blob には blob のコンテンツがそのまま表示されます。コミットにはコミットログのメッセージと、コミットにおける変更の diff 出力が表示されます。
Git オブジェクトは、すべて参照によってアクセスされます。デフォルトでは、git-show
は HEAD 参照に対して機能します。HEAD 参照は、常に現在のブランチの最終コミットをポイントします。そのため、git-show
を使用して最新のコミットのログメッセージと diff 出力を表示できます。
git-show のオプション
オブジェクトやオブジェクトリストの参照を渡して、特定のオブジェクトを検証できます。明示的なオブジェクトが渡されない場合、git-show
は HEAD 参照にデフォルト設定されます。
--pretty[=
pretty オプションでは、oneline、short、medium、full、fuller、email、raw
のうちいずれかの二次書式値と format:
が指定されます。省略すると、書式は medium
にデフォルト設定されます。各書式オプションは、Git での表示出力の書式設定に関する異なるテンプレートです。oneline
オプションは、コミットのリストを表示するのに非常に役立ちます。
--abbrev-commit
このオプションにより、出力コミット ID の長さが短縮されます。コミット ID は 40 文字で、幅の狭い端末の画面では表示しにくいことがあります。このオプションと --pretty=oneline
を組み合わせることで、git log
の出力を非常に短くできます。
--no-abbrev-commit
常に完全な 40 文字のコミット ID を表示します。これにより、--abbrev-commit
や、コミット ID を短縮する --oneline format
などのその他すべてのオプションが無視されます。
--oneline
これは展開されたコマンドを使用するためのショートカットです。--pretty=oneline --abbrev-commit
--encoding[=
Git ログメッセージの文字エンコーディングは UTF-8 にデフォルト設定されますが、エンコーディングオプションが別の文字エンコーディング出力に変更される場合があります。これは、アジア言語を使用する端末など、文字エンコーディングが異なる環境で Git を使用する場合に有用です。
>--expand-tabs=
--expand-tabs
--no-expand-tabs
これらのオプションにより、ログメッセージ出力で tab 文字がスペースによって置換されます。n
値を設定して、tab がいくつのスペース文字に展開されるのかを設定できます。n 値を明示的に指定しないと、tab は 8 つのスペースに展開されます。--no-expand-tabs
は n=0
に相当します。
--notes=
--no-notes
Git にはノートシステムがあり、任意の「note」メタデータをオブジェクトに添付できます。このデータを git-show
を使用して非表示化またはフィルタリングできます。
--show-signature
このオプションでは、コミットの署名が暗号化されていることを gbp サブコマンドに渡すことで確認します。
git-show の pretty 書式
上記の --pretty
オプションでは、git-show
出力の書式を整えるために複数の二次オプションが受け入れられます。以下は、サンプルテンプレートを含む二次オプションの一覧です。
- oneline
Oneline により、できるだけ多くの情報を 1 行にまとめます。
- short
commit
Author:
- medium
commit
Author:
Date:
- full
commit
Author:
Commit:
- fuller
commit
Author:
AuthorDate:
Commit:
CommitDate:
- email
From
From:
Date:
Subject: [PATCH]
- raw
raw 書式では、git-show
に渡されるほかの直接書式設定オプションが無視され、コミットはオブジェクトに保存されたとおりに出力されます。raw では--abrev
と--no-abbrev
は無視され、常に親コミットが表示されます。
- format:
format により、カスタム出力書式を指定できます。これは C 言語のprintf
コマンドと似ています。--pretty=format
オプションでは、テンプレート文字列の二次値が指定されます。テンプレートは、コミットオブジェクトのデータが入力されるプレースホルダー変数にアクセスします。以下のようなプレースホルダーがあります。
• %H: コミットハッシュ
• %h: 短縮コミットハッシュ
• %T: ツリーハッシュ
• %t: 短縮ツリーハッシュ
• %P: 親ハッシュ
• %p: 短縮親ハッシュ
• %an: 作成者名
• %aN: 作成者名
• %ae: 作成者 E メール
• %aE: 作成者 E メール
• %ad: 作成者日付 (書式は --date= オプションに準拠)
• %aD: 作成者日付、RFC2822 スタイル
• %ar: 作成者日付、相対
• %at: 作成者日付、UNIX タイムスタンプ
• %ai: 作成者日付、ISO 8601 書式
• %cn: コミッター名
• %cN: コミッター名
• %ce: コミッター E メール
• %cE: コミッター E メール
• %cd: コミッター日付
• %cD: コミッター日付、RFC2822 スタイル
• %cr: コミッター日付、相対
• %ct: コミッター日付、UNIX タイムスタンプ
• %ci: コミッター日付、ISO 8601 書式
• %d: ref 名、git-log(1) の --decorate オプションなど (1)
• %e: エンコーディング
• %s: 件名
• %f: ファイル名に適したサニタイズ済み件名行
• %b: 本文
• %N: コミットノート
• %gD: reflog セレクター (refs/stash@{1} など)
• %gd: 短縮 reflog セレクター (stash@{1} など)
• %gs: reflog 件名
• %Cred: 色を赤に切り替え
• %Cgreen: 色を緑に切り替え
• %Cblue: 色を青に切り替え
• %Creset: 色をリセット
• %C(...): color.branch.* 設定オプションに記載されている色指定
• %m: 左、右または境界マーク
• %n: 改行
• %%: ロー %
• %x00: 16 進コードからのバイト印刷
• %w([[, : 行の折り返しの切り替え (git-shortlog の -w オプションなど)[, ]]])
git-show の例
git show --pretty="" --name-only bd61ad98
コミットで処理されたすべてのファイルが一覧にされます。
git show REVISION:path/to/file
特定のバージョンのファイルが表示されます。REVISON
は Git sha で置換されます。
git show v2.0.0 6ef002d74cbbc099e1063728cab14ef1fc49c783
v2.0.0 タグと 6ef002d74cbbc099e1063728cab14ef1fc49c783
のコミットが表示されます。
git show commitA...commitD
commitA
から commit D
までの範囲内すべてのコミットが出力されます。
概要
git-show
は、Git リポジトリのオブジェクトを検証する非常に用途の広いコマンドです。これを使用して、特定のバージョンの特定のファイルをターゲットにできます。git-show
を使用してあるコミット範囲を検証すると、その範囲に含まれる個別のコミットすべてが出力されます。git-show
は、パッチノートを作成し、リポジトリの変更を追跡するために利用できます。