<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>Git Graph · 仁才徳</title>
    <link>https://jared.lynskey.co.nz/ja/tags/git-graph/</link>
    <description>ソフトウェアエンジニアリングと開発組織のリーダーシップについて。評価、採用とチームの拡大、CI/CD、DevOps モニタリング、エージェンティック AI。ソウルより。</description>
    <generator>Hugo</generator>
    <language>ja</language>
    <copyright>© 2026 仁才徳</copyright>
    <lastBuildDate>Wed, 28 Oct 2026 00:00:00 +1300</lastBuildDate>
    <atom:link href="https://jared.lynskey.co.nz/ja/tags/git-graph/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Gitのグラフ表示（ターミナル・VS Code）で、マイクロマネジメントせずに進捗を追う</title>
      <link>https://jared.lynskey.co.nz/ja/posts/2023/2023-06-02-project-progress-git-graph/</link>
      <guid isPermaLink="true">https://jared.lynskey.co.nz/ja/posts/2023/2023-06-02-project-progress-git-graph/</guid>
      <pubDate>Fri, 02 Jun 2023 11:30:03 +0000</pubDate>
      <dc:creator>Jared Lynskey</dc:creator>
      <category>Git</category>
      <category>Git Graph</category>
      <category>VS Code</category>
      <category>Project Management</category>
      <category>Engineering Manager</category>
      <description>git log --graphのコマンドとエイリアス、2つのブランチの比較、VS CodeのGit Graph拡張と標準のグラフ表示。そのうえで、チームを監視せずに進捗を追う使い方を紹介します。</description>
      <content:encoded><![CDATA[<p>Gitのグラフをいちばん手軽に見るならターミナルです。<code>git log --graph --oneline --all --decorate</code> を実行すると、すべてのブランチが線で描かれ、1行に1コミット、ブランチ名やタグ名もコミットの横に表示されます。VS Codeなら、ソース管理ビューに標準で入っている「Source Control Graph」を使うか、Git Graph拡張を入れれば、もっと大きくてクリックできるグラフが見られます。どちらも記事の最後で詳しく説明します。</p>
<p>「進捗どうですか？」と聞かれて嬉しい人はいません。とはいえ、仕事でプロジェクトを率いる立場としては、進捗を知らないわけにもいきません。私の妥協点がGitグラフです。誰かに聞く前に、まずグラフを見る。たいていの場合、答えはすでにそこにあります。コミットの動き、ブランチ、マージがひと目で分かり、そのために誰も会議に出る必要がありません。</p>

<h3 class="relative group">グラフから実際に何が読めるか
    <div id="グラフから実際に何が読めるか" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%82%b0%e3%83%a9%e3%83%95%e3%81%8b%e3%82%89%e5%ae%9f%e9%9a%9b%e3%81%ab%e4%bd%95%e3%81%8c%e8%aa%ad%e3%82%81%e3%82%8b%e3%81%8b" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p><figure><span class="mc-img" style="--lqip:url('data:image/webp;base64,UklGRqoAAABXRUJQVlA4IJ4AAAAQBgCdASogABgAPw1yrE0mIyIhKAqoxiGJ5QC3uywCxQFpuHEPXSkTd6B0z2RWZa4T7Y8RfsruOsAA/vd8+2CpyheBOdEz3RjVNYlC9RtFoqjOvb/UUWB572vAmnOtzv/AnG5mtp9GYAzXQce5Jk69dXACVLuYiXixGTwngnNtwm/gJSEGWEDi7N2CT1vDSW68w98W/Qmb3QPw7xAAAA==')"><img
    class="my-0 rounded-md"
    loading="lazy"
    decoding="async"
    fetchpriority="auto"
    alt="Git Graphs"
    width="2560"
    height="1920"
    src="https://jared.lynskey.co.nz/img/posts/gitgraphs/image_hu_4be8d7d2144dd617.webp"
    srcset="https://jared.lynskey.co.nz/img/posts/gitgraphs/image_hu_4be8d7d2144dd617.webp 800w, https://jared.lynskey.co.nz/img/posts/gitgraphs/image_hu_b6056380eece4a86.webp 1280w"
    sizes="(min-width: 768px) 50vw, 65vw"
    data-zoom-src="https://jared.lynskey.co.nz/img/posts/gitgraphs/image_hu_1c52b3c34db54258.webp"></span></figure>
</p>
<p>じっくり見たことがない方のために説明すると、ノードひとつがコミット、枝分かれした線がブランチで、全体がプロジェクトの時系列になっています。このレイアウトには驚くほど情報が詰まっています。</p>
<ul>
<li>一瞥するだけで、アクティブなブランチの数とコミットの頻度が分かります。</li>
<li>急に静かになったブランチや、何週間もマージされていないブランチは、たいてい誰かが詰まっているサインです。この早期警告には価値があります。</li>
<li>マージの頻度はチームのコラボレーションの形を映します。マージが頻繁なら作業がきちんと統合されている証拠で、長生きしすぎたブランチは、孤立した作業になっている可能性が高いです。</li>
</ul>

<h3 class="relative group">中断は減り、会話は良くなる
    <div id="中断は減り会話は良くなる" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%b8%ad%e6%96%ad%e3%81%af%e6%b8%9b%e3%82%8a%e4%bc%9a%e8%a9%b1%e3%81%af%e8%89%af%e3%81%8f%e3%81%aa%e3%82%8b" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>分かりやすいメリットは、誰の作業も中断せずに状況を把握できることです。それ以上に効くのは、いざ会話が必要になったときです。推測ではなく、グラフから話を始められます。「このブランチ、火曜日から動いてないけど、何か詰まってる？」は、「進捗どうですか？」よりずっとましな切り出し方です。</p>
<p>ルーチンを明示しておくのも効きます。私の場合は、ほぼ毎朝さっと眺めて、週に一度じっくり見る。チームもそのリズムを知っているので、誰も驚きません。</p>

<h3 class="relative group">監視ツールにしないこと
    <div id="監視ツールにしないこと" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%9b%a3%e8%a6%96%e3%83%84%e3%83%bc%e3%83%ab%e3%81%ab%e3%81%97%e3%81%aa%e3%81%84%e3%81%93%e3%81%a8" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>ここは自分にも言い聞かせ続けている部分です。コミット数は価値ではありません。よく考えられたコミット1つが、騒がしいコミット50個に勝つこともあります。すべてのコミットが見えるからといって、すべての判断に口を出していいわけではない。チームを信頼して、パターンが本当に怪しいときだけ介入する。そしてグラフを会話に持ち込むときは、フィードバックの出発点として使うこと。検察側の証拠にしてはいけません。</p>

<h3 class="relative group">ターミナルでグラフを表示する
    <div id="ターミナルでグラフを表示する" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%82%bf%e3%83%bc%e3%83%9f%e3%83%8a%e3%83%ab%e3%81%a7%e3%82%b0%e3%83%a9%e3%83%95%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>必要なのはGitだけです。</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git log --graph --oneline --all --decorate</span></span></code></pre></div></div>
<p>それぞれのオプションの意味は次のとおりです。</p>
<ul>
<li><code>--graph</code>：左側にブランチとマージの線を描きます。</li>
<li><code>--oneline</code>：1コミットを1行で、短いハッシュとメッセージの1行目だけ表示します。</li>
<li><code>--all</code>：今いるブランチだけでなく、リモートを含むすべてのブランチとタグを表示します。</li>
<li><code>--decorate</code>：ブランチ名やタグ名を、それが指すコミットの横に表示します。最近のGitは出力先がターミナルなら何もしなくても表示しますが、このオプションを付けておけば、パイプで別のコマンドに渡したときも消えません。</li>
</ul>
<p>毎朝これを打つのは面倒なので、エイリアスにしておきます。</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git config --global alias.graph <span class="s2">&#34;log --graph --oneline --all --decorate&#34;</span>
</span></span><span class="line"><span class="cl">git graph</span></span></code></pre></div></div>
<p>長く続いているリポジトリだと、グラフ全体はいつまでもスクロールが終わりません。絞り込む方法をいくつか挙げます。</p>
<div class="highlight-wrapper"><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git graph --since<span class="o">=</span><span class="s2">&#34;2 weeks ago&#34;</span>    <span class="c1"># 直近2週間だけ</span>
</span></span><span class="line"><span class="cl">git graph -20                      <span class="c1"># 直近20コミットだけ</span>
</span></span><span class="line"><span class="cl">git log --graph --oneline main..feature                <span class="c1"># featureにあってmainにまだないもの</span>
</span></span><span class="line"><span class="cl">git log --graph --oneline --left-right main...feature  <span class="c1"># 両側を &lt; と &gt; で区別して表示</span></span></span></code></pre></div></div>
<p>最後の2つは2つのブランチの比較です。エイリアスではなく素の <code>git log</code> を使っているのは、<code>--all</code> が入っていると他のブランチまで全部戻ってきてしまうからです。ドット2つは「<code>feature</code> にあって <code>main</code> にないもの」を表示します。ドット3つに <code>--left-right</code> を付けると、お互いに相手にないものを両側とも表示するので、長生きしているブランチがどれだけ離れてしまったかをすぐ確認できます。</p>

<h3 class="relative group">VS Codeでグラフを表示する
    <div id="vs-codeでグラフを表示する" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#vs-code%e3%81%a7%e3%82%b0%e3%83%a9%e3%83%95%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>VS Codeにはグラフが標準で入っています。ソース管理ビュー（Ctrl+Shift+G）を開くと、そのパネルの中に「Source Control Graph」のセクションがあります。バージョン1.93（2024年8月）からの機能です。初期状態では今のブランチとそのリモートを表示し、グラフのタイトルバーにあるブランチ選択で他のブランチを追加できます。さっと眺めるだけなら、これで十分です。</p>
<p>すべてのブランチを一度に見たいなら、mhutchie氏のGit Graph拡張を入れます（拡張機能ビューで「Git Graph」を検索）。開き方は、ステータスバーの「Git Graph」、ソース管理ビュー上部のGit Graphアイコン、またはコマンドパレットの <em>Git Graph: View Git Graph (git log)</em> のいずれかです。コミットをクリックすると変更されたファイルが見られ、あるコミットをクリックしてから別のコミットをCtrl/Cmd+クリックすると2つを比較できます。ただ、この拡張は2021年からリリースが止まっているので、標準のグラフも知っておいて損はありません。</p>
<p>Git Graphのボタンが出てこない場合は、拡張機能がリポジトリを見つけられていない可能性が高いです。初期設定では開いたフォルダそのものしか探さず、サブフォルダまでは見に行きません。リポジトリのフォルダを直接開くか、設定で <code>git-graph.maxDepthOfRepoSearch</code> の値を上げてください。</p>

<h3 class="relative group">その他のツール
    <div id="その他のツール" class="anchor"></div>
    
    <span
        class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none">
        <a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e3%81%9d%e3%81%ae%e4%bb%96%e3%81%ae%e3%83%84%e3%83%bc%e3%83%ab" aria-label="アンカー">#</a>
    </span>
    
</h3>
<p>たいていのGitツールには、どこかにグラフがあります。<code>gitk --all</code> はGit自身の履歴ブラウザです。GitHub、GitLab、Bitbucketには、リポジトリページに「ネットワーク」や「グラフ」のビューがあります。デスクトップクライアントでも、SourceTree（Atlassianの無料ツール）、GitKraken、Tower、WindowsならTortoiseGitに、どれもグラフ表示があります。</p>
<p>どれを選んでも、目的は同じです。進捗を理解すること。コミットを数えることではありません。</p>
]]></content:encoded>
      <media:content url="https://jared.lynskey.co.nz/en/posts/2023/2023-06-02-project-progress-git-graph/featured.jpeg" medium="image" type="image/jpeg" />
    </item>
  </channel>
</rss>
