QA@IT

git で指定したコミットがどのブランチに属するか知りたい

11884 PV

git で指定したコミットがどのブランチに属する(含まれる)か調べる方法を教えてください。

回答

gitではあるコミットが「属するブランチ」というのは定義が難しくて、1:1対応にならないことがあります。もし厳密に考えるならすべての可能なrefsからparentをたどってそのコミットに到達できるかを調べる必要があるでしょう。

しかしそれはさておきとりあえず代表的なやつだけでも知りたいというのならname-revはどうでしょうか。

% git name-rev 33db5f4d9027a10e477ccf054b2c1ab94f74c85a
33db5f4d9027a10e477ccf054b2c1ab94f74c85a tags/v0.99~940

(これはmanからとってきました) このようにすると、コミット 33db5f4tags/v0.99 の940個前だったことがわかります。

編集 履歴 (0)
  • 「もし厳密に考えるならすべての可能なrefsからparentをたどってそのコミットに到達できるかを調べる必要があるでしょう。」
    やはりその作業が必要なのですね。

    name-revは便利ですね!。ありがとうございます!
    -

以下で属しているブランチ一覧を挙げてくれます。
$ git branch --contains <commit>

編集 履歴 (3)
ウォッチ

この質問への回答やコメントをメールでお知らせします。