範囲のある Git ログを使用して 1つのブランチのコミット履歴を表示する

Ankit Raj Goyal 2023年1月30日
  1. git log と高度な制限オプションを使用したブランチの Git コミット履歴
  2. ダブルドット構文を使用したブランチの Git コミット履歴 <branch1>..<branch2>
  3. git log を使用して、ブランチの Git コミット履歴を表示するために少数の文字を入力するのに便利なショートカット
  4. 現在のブランチのみでコミットを表示するための log を使用して、最後のいくつかのコミットのみを表示するための便利なオプション
  5. キャレットオペレーターとのブランチの Git コミット履歴^
  6. --not オプションを使用したブランチの Git コミット履歴
  7. リソース
範囲のある Git ログを使用して 1つのブランチのコミット履歴を表示する

git log には、リポジトリ履歴からコミットのサブセットを取得するための多くの制限オプションがあります。ダブルドット構文、キャレット演算子^--not オプション、およびいくつかのショートカットを使用して、範囲で git log がどのようにブランチのみの git commit 履歴を表示するのに役立つかを示します。

Git は、ユーザーがブランチを管理し、効率的なワークフローを考案できるようにする、この豊富なリビジョンクエリシステムからその力を引き出します。

git log と高度な制限オプションを使用したブランチの Git コミット履歴

Git リポジトリは、コミット履歴が長くなると大きくなる可能性があります。このような場合、完全な履歴を表示することはあまり役に立ちません。

git log コマンドは、必要なリポジトリ履歴からコミットのサブセットのみを抽出するための多くの便利なオプションを提供します。

git log [formatting options] [limiting options]

[formatting options] を使用すると、コミットに関するさまざまな情報を表示できます。[limiting options] を使用すると、表示するコミットを選択できます。

これらの制限オプションに適切な範囲値を指定すると、現在のブランチで git show コミットを実行できます。

ダブルドット構文を使用したブランチの Git コミット履歴 <branch1>..<branch2>

二重ドット構文は、branch2 からは到達できるが branch1 からは到達できないコミットを示しています。

master から新しい experiment_branch を作成するとします。次に、これらの両方のブランチにコミットしますが、まだマージしません。

ここで experiment_branch に対して素の git log を実行してみると、experiment_branch を作成する前に master に行ったコミットも含めたすべての履歴が表示されます。

実験前にマスターにコミットします

これはあまり役に立たない動作です。一般的なユースケースの 1つは、experiment_branch でマージされていないコミットのみを表示する場合です。

これを行うには、次のコマンドを使用します。

git log master..experiment_branch

すべてのコミットは experiment_branch から到達可能ですが、master からは到達できません(基本的に、実験ブランチ上のすべてのマージされていないコミット)。

ブランチ doubledot 構文の gitcommit 履歴

逆の場合のブランチの順序を逆にして、experiment_branch をマージする master の状態を確認することもできます。

私たちの master は次のようになります:

実験後に新しいコミットをマスターする

私たちが行うとき:

git log experiment_branch..master

実験ブランチを作成した後、master に新しいコミットのみが表示されます。

新しいコミット-マスターブランチのダブルドット

git log を使用して、ブランチの Git コミット履歴を表示するために少数の文字を入力するのに便利なショートカット

ダブルドット構文で 2つのブランチのいずれも提供しない場合、Git はデフォルトで HEAD に設定します。

これを git checkout の賢い選択で使用して、git log コマンドを短くすることができます。

まず、実験ブランチに切り替えます。

git checkout experiment_branch

これで、HEADexperiment_branch を指します。

ここでは、右の分岐オペランドを省略して、短い形式のダブルドット範囲構文を使用します。

git log master..

Git はデフォルトで正しいブランチを現在の HEAD、つまり experiment_branch に設定し、上記とマージされていないコミットのみの同じ履歴を取得します。

git の短い形式のダブルドット

現在のブランチのみでコミットを表示するための log を使用して、最後のいくつかのコミットのみを表示するための便利なオプション

私たちの experiment_branch には、多くのマージされていないコミットがある長い歴史があるかもしれません。

長い歴史を実験する多くのマージされていないコミット

このような場合、最後のいくつかのコミットのみを確認したい場合があります。

git log -2 master..

-2 オプションは、選択した履歴のサブセットからの最後の 2つのコミットのみを表示します。

履歴の最後のいくつかのコミットのみを表示する

キャレットオペレーターとのブランチの Git コミット履歴^

キャレット演算子^は、操作するブランチから到達可能なすべてのコミットを除外します。これを使用して、現在のブランチの履歴のみを表示できます。

git log ^master experiment_branch

ブランチキャレットのコミット履歴を表示する

--not オプションを使用したブランチの Git コミット履歴

ブランチ名の前に --not オプションを使用しても同じ結果を得ることができます。これにより、そのブランチから到達可能なすべてのコミットが除外されます。

git log experiment_branch --not master

同じことを行い、experiment_branch でマージされていないコミットのみを表示していることがわかります。

オプションではなくブランチのコミット履歴を表示する

リソース

  1. https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
  2. https://rakhesh.com/coding/git-view-the-commit-log-of-a-remote-branch/
  3. https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
  4. https://stackoverflow.com/questions/14889017/how-to-show-local-branch-history#14889649
  5. https://stackoverflow.com/questions/16974204/how-to-get-commit-history-for-just-one-branch

関連記事 - Git Commit