This isn't an internal exception.  It should be a proper top-level API error that callers should check for and expect.  Don't we already have one for TagCommand?  There we throw InvalidTagNameException.  So we need InvalidBranchNameException.