特定のコミットを含むブランチを一覧表示するにはどうすればいいですか? 質問する

特定のコミットを含むブランチを一覧表示するにはどうすればいいですか? 質問する

特定のコミットが含まれているブランチを見つけるために、git にクエリを実行するにはどうすればよいでしょうか。 ブランチgitkが多すぎる場合を除き、通常はブランチがリストされます。ブランチが多すぎる場合は、「多数 (38)」などと表示されます。完全なリスト、または少なくとも特定のブランチにコミットが含まれているかどうかを知る必要があります。

ベストアンサー1

からgit-branch マニュアルページ:

 git branch --contains <commit>

指定されたコミット (指定されていない場合は HEAD) を含むブランチのみを一覧表示します。 を意味します--list


 git branch -r --contains <commit>

リストリモートトラッキングブランチ同様に(ユーザー3941992答え(以下参照)つまり「リモート ブランチと直接関係のあるローカル ブランチ」です。


として了解しましたによるカール・ウォルシュ、これはデフォルトのrefspec

fetch = +refs/heads/*:refs/remotes/origin/*

他のref名前空間を含める必要がある場合(プルリクエストゲリット、...)、新しい refspec を追加して再度フェッチする必要があります。

git config --add remote.origin.fetch "+refs/pull/*/head:refs/remotes/origin/pr/*"
git fetch
git branch -r --contains <commit>

こちらもご覧ください準備完了記事。

タグ--containsは、特定のコミットがブランチにすでに取り込まれているかどうかを判断します。適用したと思っていたパッチからコミット SHA を取得した場合や、メモリ使用量を 75% 削減するお気に入りのオープン ソース プロジェクトのコミットがすでに取り込まれているかどうかを確認したい場合などです。

$ git log -1 tests
commit d590f2ac0635ec0053c4a7377bd929943d475297
Author: Nick Quaranto <[email protected]>
Date:   Wed Apr 1 20:38:59 2009 -0400

    Green all around, finally.

$ git branch --contains d590f2
  tests
* master

注意:コミットがリモートトラッキングブランチ-aオプションを追加します。
ミシェルBコメント下に

git branch -a --contains <commit>

マトリックスフロッグ正確にどのブランチにそのコミットが含まれているかだけを表示するとコメントしています
どのブランチに「同等の」コミットが含まれているか(つまり、どのブランチがそのコミットをチェリーピックしたか)を知りたい場合は、git cherry:

git cherry はコミット ID (sha1) ではなく変更セットを比較するため、ローカルで行ったコミットが別のコミット ID でgit cherry適用されているかどうかを確認するために使用できます。たとえば、コミットを直接プッシュまたはプルするのではなく、電子メールでパッチを送信する場合にこれが起こります。<upstream>
<upstream>

           __*__*__*__*__> <upstream>
          /
fork-point
          \__+__+__-__+__+__-__+__> <head>

(ここで、「 」とマークされたコミット-は には表示されませんgit cherry。つまり、それらは にすでに存在しているということです<upstream>。)

おすすめ記事