Git ガイド
Git ツリー ビジュアライザーとビューア: Git 履歴をグラフとして表示する方法
Git 履歴をツリーとして表示する 3 つの方法: ターミナルの git ログ グラフ、gitk、およびクリック可能な GUI コミット グラフ。次に、レーンとマージを読み取り、必要なコミットを見つける方法を学びます。

Git ツリー ビジュアライザ は、コミット履歴をグラフとして描画します。すべての点がコミット、すべての色付きの線が分岐、1 つの点で交わる 2 つの線がマージです。 Git 自体には 2 つの機能があります。任意のターミナルで git log --graph --oneline --all --decorate を実行するか、gitk --all を開きます。クリック、フィルター、検索できる履歴が必要な場合は、macOS、Windows、および Linux の GitTree、デスクトップ Git クライアント などの GUI コミット グラフを使用します。
このガイドでは 3 つすべてを説明し、レーンを読んでコミットをマージする方法と、数千のコミットの中から 1 つのコミットを見つける方法を示します。簡単な開示: GitTree の作成者がそれを書きました。コマンドラインセクションと gitk セクションには Git のみが必要です。
Git ログ グラフ: Git にすでに組み込まれているツリー ビュー
最も迅速な Git ツリー ビューは 1 つのコマンドです。これは、SSH 経由の任意のリポジトリ、および Git が実行されるすべてのシステムで動作します。
git log --graph --oneline --all --decorate--graphはブランチのテキスト グラフを描画し、各コミットの左側にマージします。また、親が子の前に表示されないようにコミットを並べ替えます。--onelineはコミットごとに 1 行、つまり短いハッシュとメッセージの最初の行を出力します。--allには、現在のブランチだけでなく、すべてのブランチ、リモート ブランチ、タグとHEADが表示されます。これがないと、現在のブランチにマージされていないブランチは非表示のままになります。--decorateは、ブランチ名とタグ名を、それらが指すコミットの横に出力します。 Git は、出力がターミナルに送信されるときにすでにこれを実行しているため、フラグは主に出力をパイプするとき、またはlog.decorateを変更したときに重要になります。
出力は次のようになります。最新のコミットが先頭にあり、* はコミットをマークし、|、\、および / 文字は分岐行です。
* a1b2c3d (HEAD -> main) Merge branch 'feature/search'
|\
| * 9f8e7d6 (feature/search) Highlight matched terms
| * 5c4b3a2 Add search index
* | 1a2b3c4 Fix typo in README
|/
* 0f9e8d7 (tag: v1.0.0) Release 1.0.0下から上に読んでください。v1.0.0 がリリースされ、その後 2 行の作業が並行して実行され (main の README 修正、独自のブランチの検索機能)、上部のマージによってそれらが再び結合されました。
短いエイリアスとして保存します
毎回 4 つのフラグを入力したい人はいません。 Git エイリアスはコマンド全体を git tree に変換します。
git config --global alias.tree "log --graph --oneline --all --decorate"
git tree知っておく価値のある 4 つのバリエーション
git log --graph --oneline --first-parent main
git log --graph --oneline --all --simplify-by-decoration
git log --graph --oneline main..feature/search
git log --graph --pretty=format:"%h %an %ar %s"--first-parentは各マージの最初の親のみに従います。そのため、mainは、機能ごとに 1 つのマージで、そこに到達したものの直接のリストとして読み取ります。--simplify-by-decorationは、ブランチまたはタグが指すコミットのみを保持します。つまり、その間のコミットを除いた Git ブランチ ツリーのアウトラインです。main..feature/searchは、mainにまだ存在していないfeature/searchのコミットを示します。これは、マージによってもたらされるものです。--pretty=formatは、作成者と相対日付 (「3 日前」) を各行に追加します。
gitk: Git に同梱される Git 履歴ビューア
gitk は、Tcl/Tk で書かれた Git 独自のグラフィカル リポジトリ ブラウザです。コミット グラフを描画し、各コミットの詳細を表示し、各リビジョン内のファイルをリストします。リポジトリ内から起動します。
gitk --allgitk は git log と同じ制限を受け入れるため、時間範囲またはフォルダーに制限を絞り込むことができます。これにより、src/ の過去 2 週間の変更のみが開きます。
gitk --since="2 weeks ago" -- src/シェルが gitk: command not found と応答する場合、Git インストールではそれが省略されています。 Debian と Ubuntu では、gitk は別のパッケージです。
sudo apt install gitkgitk は履歴を読み取るために構築されています。右クリック メニューにはいくつかのコミット アクションがありますが、コミットの作成は兄弟ツールである git gui に属しており、独自のドキュメントによるとプロジェクト履歴は表示されません。毎日の作業では、2 つのウィンドウとターミナルを切り替えることになります。
GUI コミット グラフ: クリックできる Git ツリー ビュー
デスクトップ Git クライアントは同じツリーを描画しますが、すべての行はライブです。コミットを選択すると、そのメッセージ、親、および変更されたファイルが表示されます。それを右クリックしてブランチを作成したり、選択したり、元に戻したりします。ブランチ ラベルをダブルクリックしてチェックアウトするか、1 つのブランチを別のブランチにドラッグしてマージまたはリベースします。 GitTree では、コミット グラフは別個のビューアではなくメイン ウィンドウです。

GitTree がグラフ上に点と線を超えて描画するものは次のとおりです。
- ブランチごとに色分けされたレーン。ローカル、リモート、およびそれらが指すコミットのタグ ラベルが付いています。
- まだコミットしていない変更の最新コミットの上の
// WIP行、およびコミット元のグラフ上に描画された各スタッシュ。 - 署名されたコミットにアバターと署名バッジを作成します。
- GitHub、GitLab、Bitbucket、または Azure DevOps に接続したら、ブランチ チップでプル リクエストと CI チェック チップを実行します。
- 100,000 コミットを超えるとスムーズにスクロールするため (Linux に測定)、大量の履歴を引き続き使用できます。
GitTree は、コンピュータにすでにインストールされている Git (バージョン 2.39 以降) を実行するため、すべてのボタンが対応するコマンドの動作を行います。 2 つのスタイルのどちらを選択するかまだ迷っている場合は、Git GUI とコマンド ラインの使用 の比較でトレードオフがカバーされています。
Git コミット グラフの読み方: レーン、フォーク、マージ
グラフが端末で ASCII であるか、ウィンドウで色付けされているかにかかわらず、同じルールが適用されます。
| あなたが見るもの | それが何を意味するか |
|---|---|
ドット (ターミナルでは *) | 1 つのコミット。新しいコミットは古いコミットよりも上にあります。 |
| 縦の線、つまり車線 | 開発ライン: 1 つのブランチ上で次々に続くコミット。 |
| 分岐する線 | 誰かがそのコミットからブランチを開始し、作業は 2 か所で継続されました。 |
| 2 本の線が 1 つの点で交わる | マージコミット。これには 2 つの親があり、それぞれの系統から 1 つずつです。 |
main、origin/main、または v1.0.0 などのラベル | ローカル ブランチ、リモート ブランチ、またはそのコミットを指すタグ。 HEAD -> はチェックアウトしたものをマークします。 |
| 一本の直線、分岐点なし | 通常、早送りマージまたはマージ前のリベースによる線形履歴。 |
マージコミットの読み取り
マージ コミットには 2 つの親があります。最初の親はマージ時に存在していたブランチで、通常は main です。 2 番目は、マージしたブランチです。これが、--first-parent が main の非常に簡潔な要約を提供する理由です。つまり、すべての機能ブランチの内部をスキップします。 GitTree でマージを選択すると、詳細パネルに両方の親ハッシュがリストされます。

車線が交差して写真が混み合うとき
前後に合流する長命の枝が車線を交差させます。何も壊れていません。画面上には必要以上のものが表示されます。気になる枝まで切り落とします。ターミナルでは、--all を使用する代わりに、git log --graph --oneline main feature/search などの名前を付けます。 GitTree で、ブランチ ラベルを右クリックし、グラフで非表示、グラフで単独を選択してそのブランチのみを表示するか、左にピン留めを選択してそのレーンを最初の列に維持します。
Git 履歴を検索: 数千ものコミットの中から 1 つのコミットを見つける
木を見るだけで仕事の半分は終わります。残りの半分は、デバッグしているものを変更した 1 つのコミットを見つけることです。
コマンドラインから検索する
git log --oneline --author="Jane"
git log --oneline --since="2 weeks ago" -- src/
git log --oneline -S"parse_header"
git log --oneline -G"fn [a-z_]+_header"--authorは、作成者名またはメールアドレスがパターンに一致するコミットを保持します。--sinceと--untilは日付によって制限され、-- src/はそのパスに触れたコミットのみを保持します。-S(「つるはし」) は、文字列を追加または削除したコミットを検索します。これは、関数がいつ出現したか、いつ消滅したかを知る最も早い方法です。-Gは、追加または削除された行が正規表現と一致するコミットを検索します。[a-z_]や[[:alnum:]]などの POSIX 括弧表現を使用してください。\wのようなショートカットは、すべての Git ビルドで機能するわけではありません。
author:、file: を使用して GitTree を検索し、次のように変更します。
グラフの上の検索 (ロードされた履歴の検索) は、メッセージ、作成者、ハッシュ、ブランチ、またはタグに一致します。さらに詳しく検索するには、Ctrl+Shift+P (Mac の場合は ⌘+Shift+P) でコマンド パレットを開き、「#」と入力してからクエリを入力します。プレフィックスのない単語はコミット メッセージを検索し、これらのプレフィックスによって結果が絞り込まれます。
author:janeまたはauthor:"Jane Doe": 作成者の名前またはメールアドレスにそのテキストが含まれています。file:src/main.rs: コミットはそのパスに触れます。これを繰り返して、複数のパスを一致させます。change:parse_header: コミットは、git log -Sなどの文字列を追加または削除します。change:/fn [a-z_]+_header/: 変更された行は、git log -Gなどの正規表現と一致します。
これらを 1 つのクエリに結合します。#fix crash author:jane file:src/ は、「クラッシュの修正」に言及している Jane のコミットを見つけて、src/ をタップします。結果をリストするのではなくグラフ自体を縮小するには、フィルター グラフ… を使用して、1 人の作成者、日付範囲、またはパスのみを保持します。

GitTree で Git ツリーを確認してください
GitTreeをインストールする
macOS、Windows、または Linux の GitTree をダウンロードしてインストールします。 Git 2.39 以降がインストールされていることを確認してください (Windows 上、つまり Git for Windows を意味します)。 Ubuntu 22.04 には古い Git が同梱されているため、最初に Ubuntu で Git をアップグレード してください。
サインインして開始
GitTree が開いたら、電子メールまたは Git プロバイダーを使用して gittree.app に作成した GitTree アカウントでサインインします。これにより、グラフとその他すべての Git 機能が無料プランになります。ホスティング統合 (GitHub、GitLab、Bitbucket、Azure DevOps、プライベート リモートを含む) と AI アシスタントの Nour には、無料トライアルから始まる GitTree Pro が付属しています。無料プランはその後も継続されます。
リポジトリを開くかクローンを作成する
スタート ページで、[開く] を選択し、Git リポジトリを含むフォルダーを選択するか、[クローン] を選択して HTTPS または SSH 経由で URL からコピーします。
グラフを読む
コミット グラフがメイン ウィンドウに表示されます。最新のコミットが上部に表示され、ブランチごとに 1 つの色付きレーン、ブランチとタグのラベルが表示されます。任意のコミットをクリックすると、そのメッセージ、親、および変更されたファイルが表示されます。
集中して検索する
ブランチ ラベルを右クリックして非表示、単独または固定するには、フィルター グラフ…を使用して作成者、日付範囲、またはパスを指定し、コマンド パレットに「
#」と入力して、author:、file:、またはchange:で検索します。
どの Git ツリー ビジュアライザーを使用する必要がありますか?
| オプション | こんな方に最適 | 必要なもの |
|---|---|---|
git log --graph | クイックルック、SSH セッション、スクリプト、CI ログ | Git のみ |
| ギク | Git スイート自体からのクリック可能なグラフ | Git (Debian および Ubuntu では、別個の gitk パッケージ) |
| GitTree | 1 つのウィンドウで履歴の読み取り、検索、変更を行う | GitTree (すべての Git 機能の無料プラン、GitTree アカウント、Nour Pro) および Git 2.39 以降 |
ほとんどの開発者は、最終的に複数を使用することになります。つまり、簡単に確認するためのターミナル、履歴を調べたり、見やすく編集するための GUI (GUI での対話型リベース など) です。ブランチとコミットが初めての場合は、初心者向け Git ガイド から始めて、無料レッスン コミット、HEAD、およびリビジョン範囲を読み取る で履歴を読む練習をし、切り離された作業を維持する で切り離された HEAD とは何かを学びます。デスクトップ アプリを比較したい場合は、最高の Git GUI クライアント のまとめをご覧ください。
GitTree には、プライベート リポジトリを含むすべての Git 機能をカバーする無料プランがあり、AI アシスタントの Nour には GitTree Pro が付属しています。 コミット グラフとアプリの残りの部分でできるすべてのこと を参照するか、Mac、Windows、および Linux のインストール ノートをお読みください。
よくある質問
Git ツリー ビジュアライザーとは何ですか?
Git ツリー ビジュアライザーは、リポジトリのコミット履歴をフラット リストではなくグラフとして描画するツールです。各コミットはドット、各ブランチは線であり、マージは線が結合する場所に表示されます。 Git には、ターミナル用の git log --graph コマンドと gitk ウィンドウの 2 つが含まれています。 GitTree などのデスクトップ Git クライアントは、クリック可能で検索可能なグラフを追加します。
ターミナルで Git ブランチ ツリーを表示するにはどうすればよいですか?
リポジトリ内で git log --graph --oneline --all --decorate を実行します。 --graph はブランチ線を描画し、--oneline は各コミットを 1 行に保ち、--all には現在のブランチだけでなくすべてのブランチとタグが含まれ、--decorate はブランチとタグの名前を出力します。 git config --global alias.tree "log --graph --oneline --all --decorate" を使用してエイリアスとして保存し、それ以降は git tree と入力します。
git log にすべてのブランチが表示されないのはなぜですか?
デフォルトでは、git log は、HEAD から到達可能なコミット、つまりチェックアウトしたコミットのみをリストします。現在のブランチにマージされていないブランチは除外されます。 --all を追加してすべてのローカル ブランチ、リモート ブランチ、タグを含めるか、または必要なブランチに名前を付けます (例: git log --graph main feature/search)。
gitk は Git と一緒にインストールされますか?
gitk は Git スイートの一部であるため、多くのインストールにこれが含まれています。一部の Linux ディストリビューションは個別にパッケージ化されています。Debian と Ubuntu では、sudo apt install gitk を使用してインストールします。 gitk --all を使用してリポジトリ内から開始すると、すべてのブランチが表示されます。 --since や -- src/ など、git log と同じ日付とパスの制限を受け入れます。
特定のコード行を追加したコミットを見つけるにはどうすればよいですか?
つるはし検索を使用します。 git log -S"text" は、その正確な文字列が出現する回数を変更したコミットをリストします。これは、文字列がいつ追加および削除されたかを示します。 git log -G"regex" は、追加または削除された行を正規表現と照合します。 GitTree でコマンド パレットを開き、「#」と入力し、同じ検索に change:text または change:/regex/ を使用します。
GitTree は無料ですか? どのシステムで実行できますか?
GitTree には、個人および組織向けのすべての Git 機能をカバーする無料プランがあり、プライベート リポジトリと商用利用が含まれ、時間制限やクレジット カードは不要です。 AI アシスタントの Nour には、GitTree Pro が付属しています。料金ページでは 2 つのプランを比較しています。これは、macOS 13 以降、64 ビットの Windows 10 および 11、および 64 ビットの Linux (Ubuntu 22.04 以降、Debian 12 以降) で実行されます。 GitTree アカウントでサインインするように求められ、コンピューターにすでにインストールされている Git バージョン 2.39 以降が使用されます。 GitTree Pro は統合をホスティングするために必要です。
Git グラフ ビューアは非常に大規模なリポジトリを処理できますか?
ターミナル グラフは任意のサイズを処理しますが、分岐が多いと読みにくくなります。ブランチ名、--since、またはパスで制限します。 GitTree のコミット グラフは、Linux の測定で 100,000 コミットを超えるとスムーズにスクロールします。また、ブランチを非表示にしたり、単独にしたり、固定したり、作成者、日付、またはパスでフィルターしたりして、大量の履歴を読みやすく保つことができます。
情報源
他の製品に関する申し立ては、2026年10月22日 の公式ページと照合して確認されました。価格と機能は変更されます。ベンダーのページが真実の情報源です。