Filter Git commits by message

Given a repository with commits:

git log
commit bbc190b20404548f356f38b0a377047efd13ae40
Author: Alice <alice@example.com>
Date:   Thu Mar 2 10:46:19 2023 +0100

    Update file.txt

commit 4273d9fd0f113258f2f2f5966771f3d5f84aff01
Author: Alice <alice@example.com>
Date:   Thu Mar 2 10:46:19 2023 +0100

    Add file.txt

Use the --grep option to select commits by message:

git log --grep="Update"
commit 3eb01e2c59d6240bb7b74c698ea4c95c5287ec65
Author: Alice <alice@example.com>
Date:   Thu Mar 2 10:48:02 2023 +0100

    Update file.txt

The inverse also works. Add the --invert-grep flag to filter commits out by message:

git log --invert-grep --grep="Update"
commit f8255bebf8ab8124cd82f848b65d700dd34ef97d
Author: Alice <alice@example.com>
Date:   Thu Mar 2 10:48:44 2023 +0100

    Add file.txt