Git ブランチと雲が描かれた、開かれた本

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-tabsn=0 に相当します。

--notes=
--no-notes

Git にはノートシステムがあり、任意の「note」メタデータをオブジェクトに添付できます。このデータを git-show を使用して非表示化またはフィルタリングできます。

--show-signature
このオプションでは、コミットの署名が暗号化されていることを gbp サブコマンドに渡すことで確認します。

git-show の pretty 書式

上記の --pretty オプションでは、git-show 出力の書式を整えるために複数の二次オプションが受け入れられます。以下は、サンプルテンプレートを含む二次オプションの一覧です。

  • oneline
    </code></li> </ul> <p>Oneline により、できるだけ多くの情報を 1 行にまとめます。</p> <ul> <li><strong>short</strong><br /> <code>commit <sha1><br /> Author: <author><br /> <title line></code></li> </ul> <ul> <li><strong>medium</strong><br /> <code>commit <sha1><br /> Author: <author><br /> Date: <author date><br /> <title line><br /> <full commit message></code></li> </ul> <ul> <li><strong>full</strong><br /> <code>commit <sha1><br /> Author: <author><br /> Commit: <committer><br /> <title line><br /> <full commit message></code></li> </ul> <ul> <li><strong>fuller</strong><br /> <code>commit <sha1><br /> Author: <author><br /> AuthorDate: <author date><br /> Commit: <committer><br /> CommitDate: <committer date><br /> <title line><br /> <full commit message></code></li> </ul> <ul> <li><b>email</b><br /> <code>From <sha1> <date><br /> From: <author><br /> Date: <author date><br /> Subject: [PATCH] <title line><br /> <full commit message></code></li> </ul> <ul> <li><strong>raw</strong><br /> <strong>raw</strong> 書式では、<code>git-show</code> に渡されるほかの直接書式設定オプションが無視され、コミットはオブジェクトに保存されたとおりに出力されます。raw では <code>--abrev</code> と <code>--no-abbrev</code> は無視され、常に親コミットが表示されます。</code></li> </ul> <ul> <li><strong>format:</strong><br /> format により、カスタム出力書式を指定できます。これは C 言語の <code>printf</code> コマンドと似ています。<code>--pretty=format</code> オプションでは、テンプレート文字列の二次値が指定されます。テンプレートは、コミットオブジェクトのデータが入力されるプレースホルダー変数にアクセスします。以下のようなプレースホルダーがあります。<br /> <br /> • <em>%H</em>: コミットハッシュ<br /> • <em>%h</em>: 短縮コミットハッシュ<br /> • <em>%T</em>: ツリーハッシュ<br /> • <em>%t</em>: 短縮ツリーハッシュ<br /> • <em>%P</em>: 親ハッシュ<br /> •<em> %p</em>: 短縮親ハッシュ<br /> •<em> %an</em>: 作成者名<br /> • <em>%aN</em>: 作成者名<br /> • <em>%ae</em>: 作成者 E メール<br /> • <em>%aE</em>: 作成者 E メール<br /> •<em> %ad</em>: 作成者日付 (書式は --date= オプションに準拠)<br /> •<em> %aD</em>: 作成者日付、RFC2822 スタイル<br /> • <em>%ar</em>: 作成者日付、相対<br /> •<em> %at</em>: 作成者日付、UNIX タイムスタンプ<br /> •<em> %ai</em>: 作成者日付、ISO 8601 書式<br /> <em>• %cn</em>: コミッター名<br /> • <em>%cN</em>: コミッター名<br /> • <em>%ce</em>: コミッター E メール<br /> • <em>%cE</em>: コミッター E メール<br /> •<em> %cd</em>: コミッター日付<br /> • <em>%cD</em>: コミッター日付、RFC2822 スタイル<br /> •<em> %cr</em>: コミッター日付、相対<br /> • <em>%ct</em>: コミッター日付、UNIX タイムスタンプ<br /> •<em> %ci</em>: コミッター日付、ISO 8601 書式<br /> •<em> %d</em>: ref 名、git-log(1) の --decorate オプションなど (1)<br /> •<em> %e</em>: エンコーディング<br /> •<em> %s</em>: 件名<br /> •<em> %f</em>: ファイル名に適したサニタイズ済み件名行<br /> <em>• %b</em>: 本文<br /> •<em> %N</em>: コミットノート<br /> •<em> %gD</em>: reflog セレクター (refs/stash@{1} など)<br /> •<em> %gd</em>: 短縮 reflog セレクター (stash@{1} など)<br /> • <em>%gs</em>: reflog 件名<br /> • <em>%Cred</em>: 色を赤に切り替え<br /> •<em> %Cgreen</em>: 色を緑に切り替え<br /> • <em>%Cblue</em>: 色を青に切り替え<br /> • <em>%Creset</em>: 色をリセット<br /> • <em>%C(...)</em>: color.branch.* 設定オプションに記載されている色指定<br /> •<em> %m</em>: 左、右または境界マーク<br /> • <em>%n</em>: 改行<br /> • <em>%%</em>: ロー %<br /> • <em>%x00</em>: 16 進コードからのバイト印刷<br /> • <em>%w([<w>[,<i1>[,<i2>]]])</em>: 行の折り返しの切り替え (git-shortlog の -w オプションなど)</li> </ul> <h3 > git-show の例 </h3> <div class="component component--codeblock"> <pre><code>git show --pretty="" --name-only bd61ad98</code></pre> </div> <script type="text/x-component"> { "type":"imkt.wpl.CodeBlock", "params": { } } </script> <p>コミットで処理されたすべてのファイルが一覧にされます。</p> <div class="component component--codeblock"> <pre><code>git show REVISION:path/to/file</code></pre> </div> <script type="text/x-component"> { "type":"imkt.wpl.CodeBlock", "params": { } } </script> <p>特定のバージョンのファイルが表示されます。<code>REVISON</code> は Git sha で置換されます。</p> <div class="component component--codeblock"> <pre><code>git show v2.0.0 6ef002d74cbbc099e1063728cab14ef1fc49c783</code></pre> </div> <script type="text/x-component"> { "type":"imkt.wpl.CodeBlock", "params": { } } </script> <p>v2.0.0 タグと <code>6ef002d74cbbc099e1063728cab14ef1fc49c783</code> のコミットが表示されます。</p> <div class="component component--codeblock"> <pre><code>git show commitA...commitD</code></pre> </div> <script type="text/x-component"> { "type":"imkt.wpl.CodeBlock", "params": { } } </script> <p><code>commitA</code> から <code>commit D</code> までの範囲内すべてのコミットが出力されます。</p> <h3 > 概要 </h3> <p><code>git-show</code> は、Git リポジトリのオブジェクトを検証する非常に用途の広いコマンドです。これを使用して、特定のバージョンの特定のファイルをターゲットにできます。<code>git-show</code> を使用してあるコミット範囲を検証すると、その範囲に含まれる個別のコミットすべてが出力されます。<code>git-show</code> は、パッチノートを作成し、リポジトリの変更を追跡するために利用できます。</p> </div></div> </div> </div> </div> <div id="footer" class="footer is-tutorial "> <div class="g-row _atlassian-logo"> <div class="g-column g-12-12"> <h5 > Powered By </h5> <a href="https://bitbucket.org" class="cms-link cms-link--image" ><img src="https://wac-cdn.atlassian.com/dam/jcr:c3392b46-dcac-4283-8855-dd8fda6918a0/Bitbucket-white.svg?cdnVersion=1252" loading="lazy" alt="アトラシアン"></a> </div></div> <div class="g-row"> <div class="g-column g-4-12 t-12-12 m-12-12 t-gutterless"> <h6 > おすすめ </h6> <a href="https://twitter.com/home?status=Switching%20to%20%23Git?%20Use%20the%20Atlassian%20Git%20tutorials%20to%20jumpstart%20your%20training%20in%20Git%20commands%20and%20workflows.%20https://www.atlassian.com/git" class="cms-link cms-link--image social-code" ><img src="https://wac-cdn.atlassian.com/dam/jcr:69b49692-9452-4dd9-aca1-df56b2bbadbd/icon-twitter.svg?cdnVersion=1252" loading="lazy" alt="Twitter"></a> <a href="https://www.facebook.com/sharer/sharer.php?u=https://www.atlassian.com/git" class="cms-link cms-link--image social-code" ><img src="https://wac-cdn.atlassian.com/dam/jcr:9c8da5cb-5272-4e89-9cc1-9a3f52265380/icon-facebook.svg?cdnVersion=1252" loading="lazy" alt="Facebook"></a> <a href="https://plus.google.com/share?url=https://www.atlassian.com/git" class="cms-link cms-link--image social-code" ><img src="https://wac-cdn.atlassian.com/dam/jcr:3b592a98-07ca-48a6-8b95-e59eae543341/icon-gplus.svg?cdnVersion=1252" loading="lazy" alt="Google Plus"></a> </div><div class="g-column g-4-12 t-12-12 m-12-12 t-gutterless"> <h6 > 将来の記事を読む </h6> <form class="newsletter"> <input class="is-empty _input" type="email" placeholder="Enter Your Email For Git News"> <button type="submit" class="_status icon-email-submit">Submit</button> </form> </div><div class="g-column g-4-12 t-12-12 m-12-12 t-gutterless"> <h6 > サイトのホスト: </h6> <a href="/ja/" class="cms-link cms-link--image" ><img src="https://wac-cdn.atlassian.com/dam/jcr:ffd56b30-ad4d-4cb5-94be-79c1dd68b1fb/Atlassian-horizontal-white-rgb.svg?cdnVersion=1252" loading="lazy" alt="Bitbucket" class="_bitbucket-logo"></a> </div></div> <div class="g-row"> <div class="g-column g-12-12 t-12-12 m-12-12"> <p class="license"><a class="icon-global-cclicense" href="http://creativecommons.org/licenses/by/2.5/au/" data-event="clicked" data-uuid="028d468a-75" data-event-component="linkButton" data-event-container="richText" data-schema-version="1" data-product-key="bitbucket" data-event="clicked" data-uuid="028d468a-75" data-event-component="linkButton" data-event-container="richText" data-schema-version="1" data-product-key="bitbucket" rel="nofollow">creativecommons.org</a> 明記されている場合を除き、すべてのコンテンツは <a href="http://creativecommons.org/licenses/by/2.5/au/" data-event="clicked" data-uuid="028d468a-75" data-event-component="linkButton" data-event-container="richText" data-schema-version="1" data-product-key="bitbucket" data-event="clicked" data-uuid="028d468a-75" data-event-component="linkButton" data-event-container="richText" data-schema-version="1" data-product-key="bitbucket" rel="nofollow">Creative Commons Attribution 2.5 Australia License</a> の下でライセンスされています。</p> </div></div> </div> <script type="text/javascript"> var HTTP_PREFIX = ""; var FEATURE_FLAG_USE_GDPR = true; </script> <script type="text/javascript" src="https://wac-cdn.atlassian.com/assets/build/js/gitguide/git-app-lite.js?cdnVersion=1252"></script> <link rel="stylesheet" href="https://wac-cdn.atlassian.com/assets/build/css/gitguide/site.css?cdnVersion=1252" /> <script type="text/javascript"> (function(){ var imkt = window.imkt || (window.imkt = {}); imkt.isEditMode = false; imkt.isProduction = true; imkt.constants = imkt.constants || {}; imkt.constants.rootPath = "/"; imkt.constants.assetPath = "https://wac-cdn.atlassian.com" + "/assets/"; imkt.constants.libPath = imkt.constants.assetPath + "bower_components/"; imkt.constants.cdnVersionQuery = "?cdnVersion=1252"; imkt.constants.isDevUser = false; imkt.constants.isFreeEnabled = true; imkt.constants.getUserAccounts = false; imkt.constants.headerLoginMenu = true; imkt.constants.public = true; imkt.constants.mobileBreakpoint = 640; })(); </script> <script type="text/x-component"> { "type":"imkt.pages.WACPage", "params": { } } </script> <script> function initializeATLAnalytics() { var pageViewProperties = { contentSite: 'Git Microsite', contentType: 'Microsite', contentProduct: 'Bitbucket' }; /* get url path, convert to dash format and add it to page view properties. */ var originProduct = window.location.pathname; pageViewProperties.originProduct = "wac" + (originProduct === '/' ? "" : originProduct.replace(new RegExp('/', 'g'),"-")); if (typeof ace !== 'undefined') { ace.analytics.Initializer.initWithPageAnalytics('kiv6wyh2nw', pageViewProperties, null, null, window.atlGlobalLoadStart); } } </script> <script type = "text/javascript"> /** * function to load external js through javascript. * * @param url - javascript url * @param location - location of the dom (e.g. document.head) */ var loadExternalJS = function(url, location, callback){ var scriptTag = document.createElement('script'); scriptTag.src = url; scriptTag.type = 'text/javascript'; /* Then bind the event to the callback function. There are several events for cross browser compatibility. */ scriptTag.onreadystatechange = callback; scriptTag.onload = callback; window.atlGlobalLoadStart = new Date(); /* Fire the loading */ location.appendChild(scriptTag); }; </script> <script type="text/javascript" class="optanon-category-2"> loadExternalJS("https://atl-global.atlassian.com/js/atl-global.min.js", document.body, initializeATLAnalytics); </script> </body> <!-- LastRendered: 2020/09/22 0:19:07 --> </html>