How can I query git to find out which branches contain a given commit? gitk will usually list the branches, unless there are too many, in which case it just says "many (38)" or something like that. I need to know the full list, or at least whether certain branches contain the commit.

The --contains tag will figure out if a certain commit has been brought in yet into your branch. Perhaps you’ve got a commit SHA from a patch you thought you had applied, or you just want to check if commit for your favorite open source project that reduces memory usage by 75% is in yet.

MatrixFrog comments that it only shows which branches contain that exact commit.
If you want to know which branches contain an "equivalent" commit (i.e. which branches have cherry-picked that commit) that's git cherry:

Because git cherrycompares the changeset rather than the commit id (sha1), you can use git cherry to find out if a commit you made locally has been applied <upstream> under a different commit id.
For example, this will happen if you’re feeding patches <upstream> via email rather than pushing or pulling commits directly.

tests and master - master is the current branch, therefore the asterisk.
– blueyedMar 25 '11 at 13:31

49

This only shows which branches contain that exact commit. If you want to know which branches contain an "equivalent" commit (i.e. which branches have cherry-picked that commit) that's git cherry: "Because git cherry compares the changeset rather than the commit id (sha1), you can use git cherry to find out if a commit you made locally has been applied <upstream> under a different commit id. For example, this will happen if you’re feeding patches <upstream> via email rather than pushing or pulling commits directly." kernel.org/pub/software/scm/git/docs/git-cherry.html
– MatrixFrogApr 14 '11 at 1:04