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 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