1. ホーム
  2. ギット

[解決済み】指定したコミットを含むブランチを一覧表示するには?

2022-03-23 22:40:33

質問

git に問い合わせて、あるコミットを含むブランチを調べるにはどうすればよいですか? gitk は通常ブランチをリストアップしますが、数が多すぎる場合は "many (38)" などと表示されるだけです。私は完全なリストを知りたいのですが、少なくとも特定のブランチがそのコミットを含んでいるかどうかを知る必要があります。

解決方法は?

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

 git branch --contains <commit>

指定したコミットを含むブランチのみをリストアップします(指定しない場合はHEAD)。意味するもの --list .


 git branch -r --contains <commit>

リスト リモートトラッキングブランチ にも記載されているように ユーザー3941992 's 回答 というのは、quot;リモートブランチに直接関係するローカルブランチ"です。


として によって カール・ウォルシュ にのみ適用されます。 デフォルトのリフスペック

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

他の参照名前空間を含める必要がある場合 ( プルリクエスト , ジェリット を追加し、再度フェッチする必要があります。

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 オプション .

(として MichielB コメント 以下 )

git branch -a --contains <commit>


MatrixFrog のコメントでは、どのブランチにそのブランチが含まれているかだけを表示します。 正確 コミットします。

もし、どのブランチに "equivalent" のコミットがあるか(つまり、どのブランチがそのコミットをチェリーピックしたのか)を知りたい場合は、次のようになります。 git cherry :

なぜなら git cherry はコミット ID (sha1) ではなくチェンジセットを比較します。 を使用することができます。 git cherry ローカルで行ったコミットが適用されたかどうかを調べるには <upstream> を別のコミットIDで指定します。

例えば、パッチを供給している場合、このようなことが起こります。 <upstream> は、コミットを直接プッシュしたりプルしたりするのではなく、電子メールで送信します。

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

(ここでは、''と書かれたコミットは - を使用すると表示されません。 git cherry で既に存在していることを意味します。 <upstream> .)