はじめに
Gitの履歴が増えてくると、「特定の種類のマージコミットだけ見たい」ということがあります。
たとえば、リファクタリングやデザイン修正など、テーマ別に履歴を追いたいときに便利です。
そこで本記事では、Gitのログから特定のマージコミットだけを抽出する方法をまとめます。
基本構文
git log --merges --grep="refactor"
オプション解説
| オプション | 意味 |
|---|---|
--merges |
マージコミットのみを表示 |
--grep="refactor" |
コミットメッセージ内にrefactorを含むものを検索 |
--oneline |
出力を1行表示にまとめる(必要に応じて) |
例
git log --merges --grep="refactor" --oneline
出力例:
a12b3cd Merge branch 'feature/refactor-login'
b34c5de Merge branch 'refactor/ui-cleanup'
応用:複数キーワードを指定する
git log --merges --grep="refactor" --grep="cleanup" --oneline
※
--all-matchを付けると「両方含む」もののみ抽出できます。
git log --merges --grep="refactor" --grep="cleanup" --all-match --oneline
応用:期間やブランチを限定する
git log main --since="2024-01-01" --until="2024-12-31" --merges --grep="refactor" --oneline
または特定ブランチのみ:
git log origin/develop --merges --grep="release"
応用:フォーマット出力
より見やすくしたい場合は --pretty=format を使います。
git log --merges --grep="refactor" --pretty=format:"%h | %an | %s | %cd" --date=short
出力例:
a12b3cd | User | Merge branch 'feature/refactor-login' | 2025-10-05
b34c5de | User | Merge branch 'refactor/ui-cleanup' | 2025-10-07
実務Tips
- CI/CDの履歴分析やリリースノート作成時にも応用可能
-
git logとgrepの組み合わせでかなり柔軟に検索できる - チームでコミット規約(prefixルール)を決めておくとさらに便利
例:
feat: ...
fix: ...
refactor: ...
docs: ...
まとめ
-
git log --merges --grep="refactor"でリファクタリング系マージを抽出できる - 複数条件や期間指定も柔軟に設定可能
- 出力フォーマットを工夫すれば履歴可視化にも使える
おわりに
チーム開発が進むほど履歴は膨大になります。
その中で、欲しい履歴だけを抽出できるスキルは地味ながらも確実に役立つテクニックだと思います。