Ran into this when preparing my --no-contains series, this is a long standing bug: $ ./git branch -D test; ./git branch --contains v2.8.0 test; echo $?; git rev-parse test error: branch 'test' not found. 0 test fatal: ambiguous argument 'test': unknown revision or path not in the working tree. I.e. this should return an error like "git tag" does: $ ./git tag -d test; ./git tag --contains v2.8.0 test; echo $?; git rev-parse test error: tag 'test' not found. fatal: --contains option is only allowed with -l. 128 test fatal: ambiguous argument 'test': unknown revision or path not in the working tree. I briefly looked through builtin/branch.c, couldn't find a trivial way to patch it, unfamiliar with the code, didn't want to forget about it, hence this E-Mail.