[Git] 特定のコミットを含むブランチを検索する方法

[Git] 特定のコミットを含むブランチを検索する方法

こんにちは。最近、 Netflix を利用し始めた k-so16 です。以前から興味があった フルハウス を楽しく視聴しています(笑)

業務で、あるファイルの変更がどのブランチに含まれているかを知りたいことがありました。目的の変更のコミットは分かっている前提として、 目的のコミットハッシュを含むブランチを取得 できれば、特定のファイルの変更を含むブランチがわかります。

本記事では、特定のコミットハッシュを含むブランチを取得する方法を紹介します。

本記事で想定する読者層は以下の通りです。

  • Git の基本的な操作を知っている

特定のコミットハッシュを含むブランチを取得する方法

特定のコミットハッシュを含むブランチを検索するには、 git branch コマンドの --contain オプションにコミットハッシュを引数として渡します。コミットハッシュは短縮形のハッシュでも完全なハッシュでも問題なく動作します。

以下にコマンド例を示します。 $COMMIT_ID にはコミットハッシュが入っている想定です。

  • ローカルブランチを検索する場合
$COMMID_ID のコミットハッシュが含まれるローカルブランチを検索するコマンド
git branch --contain $COMMIT_ID
出力結果の例
  bar
  foo
* main
  • リモートブランチを検索する場合
$COMMID_ID のコミットハッシュが含まれるリモートブランチを検索するコマンド
git branch -r --contain $COMMIT_ID
出力結果の例
  origin/bar
  origin/foo
  origin/HEAD -> origin/main
  origin/main
  • ローカルとリモート両方合わせて検索する場合
$COMMID_ID のコミットハッシュが含まれるブランチを検索するコマンド
git branch -a --contain $COMMIT_ID
出力結果の例
  bar
  foo
* main
  remotes/origin/bar
  remotes/origin/foo
  remotes/origin/HEAD -> origin/main
  remotes/origin/main

本記事を執筆する上で以下の記事を参考にしました。

git - What command to use to see what branch my actual branch derived from? - Stack Overflow

まとめ

本記事のまとめは以下の通りです。

  • 特定のコミットハッシュを含むブランチの取得方法を説明
    • git branch コマンドで --contain オプションを利用
    • ローカルブランチとリモートブランチでの検索方法を紹介

以上、 k-so16 でした。 Git の達人の道はまだまだ遠そうです(笑)

k-so16