Junio C Hamano <gitster@xxxxxxxxx> writes: > The list mode ... > ... can > also limit the branches whose tip commits can reach a named commit > with the "--contains". > > $ DEV_BRANCH=cs/topic > $ git branch --contains master "$DEV_BRANCH" > > asks the subcommand to show only the branches that can reach the > commit at the tip of 'master', *AND* whose name match cs/topic. So > it may show the cs/topic branch (and nothing else, even there are > cs/topic1 or cs/topic/2 branches) if and only if that branch > can reach the tip of 'master'. One crucial bit is missing from my response. In general, a git subcommand that shows zero or more things in response to a request to list things that match criteria does *NOT* consider it an error to make a request that happens to produce a zero result. The above command will exit with non-zero status if 'master' does not name a commit. But if cs/topic branch does not exist, of if the branch does not contain 'master', the command will show "here are the branches that match the criteria you gave me" by giving no lines in its standard output, and exits with 0 to signal that what you see on the screen indeed was computed correctly (as opposed to the command internally crashing and failing to produce a result, in which case you would want to be told with non-zero exit status).