Git でコミット履歴をフィルタリングする

John Wachira 2023年6月20日
  1. コミット履歴を金額でフィルタリングする
  2. 最新のコミットをフィルタリングする
  3. コミット履歴を日付でフィルタリングする
  4. 作成者によるコミット履歴のフィルタリング
  5. 複数のユーザーによるコミット履歴のフィルタリング
  6. 特定のユーザーからのコミットを除外する
Git でコミット履歴をフィルタリングする

この記事では、コミット履歴をフィルタリングするために Git で使用できるさまざまなコマンドについて説明します。 git log コマンドを使用して、リポジトリのコミット履歴を確認します。

以下に示すように、git log コマンドといくつかの組み合わせを使用して、出力をフォーマットできます。

次の方法でコミット履歴をフィルタリングできます。

コミット履歴を金額でフィルタリングする

以下のコマンドを使用すると、git log コマンドによって表示されるコミットの数を制限できます。

$ git log -4

上記のコマンドは、リポジトリ内の最近の 4つのコミットを出力します。

最新のコミットをフィルタリングする

最新のコミットをフィルタリングするには、数を指定するだけです。 最新の 6つのコミットが必要な場合は、次を実行できます。

$ git log -6

コミット履歴を日付でフィルタリングする

--after および --before フラグを使用して時間枠を指定できます。 以下で説明するように、フラグはさまざまな形式を受け入れます。

$ git log --after="2022-7-27"

このコマンドは、2022 年 7 月 27 日 以降に作成したコミットのみを表示します。 以下に示すように、相対参照を渡すことができます。

$ git log --after="yesterday"

以下の例に示すように、--before--after の両方を使用できます。

$ git log --after="2022-7-20" --before="2022-7-25"

--after--before の代わりに、それぞれ --since--until を使用できます。

作成者によるコミット履歴のフィルタリング

以下に示すように、--author フラグを git log コマンドに追加することで、特定の作成者からのコミットを表示できます。

$ git log --author="John"

上記のコマンドは、作者の名前に John という語句が含まれるコミットを表示します。 以下のような複雑な検索を行うことができます。

複数のユーザーによるコミット履歴のフィルタリング

以下のコマンドを使用して、コミット履歴を複数のユーザーでフィルタリングできます。

$ git log --author="John\|Ann"

このようなコマンドは、作成者の名前に John または Ann という語句が含まれるコミットを表示します。

特定のユーザーからのコミットを除外する

コマンドの例を次に示します。

$ git log --perl-regexp --author='^((?!Chris).*)$'

上記のコマンドは、作成者名に Chris が含まれていないすべてのコミットを表示します。

結論として、上記は私たちが使用する最も一般的なフィルタリング オプションです。 ただし、出力を除外するために git log コマンドにフィードできるパラメーターは他にもあります。

メッセージ、範囲、ファイル、およびコンテンツでフィルタリングすることもできます。

著者: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

関連記事 - Git Log