branch ... not found
====================

With this error message Gerrit rejects to push a commit for code
review if the specified target branch does not exist.

To push a change for code review the commit has to be pushed to the
project's magical `refs/for/'branch'` ref (for details have a look at
link:user-upload.html#push_create[Create Changes]).
If you specify a non existing branch in the `refs/for/'branch'` ref
the push is failing with the error message 'branch ... not found'.

To fix this problem verify

* that the branch name in the push specification is typed correctly
  (case sensitive) and
* that the branch really exists for this project (in the Gerrit WebUI
  go to 'Admin' -> 'Projects' and browse your project, then click on
  'Branches' to see all existing branches).

If it was your intention to create a new branch you can either

* bypass code review on push as explained link:user-upload.html#bypass_review[here] or
* create the new branch in the Gerrit WebUI before pushing (go to
  'Admin' -> 'Projects' and browse your project, in the 'Branches'
  tab you can then create a new branch).

Please note that you need to be granted the
link:access-control.html#category_create['Create reference'] access to create new branches.


GERRIT
------
Part of link:error-messages.html[Gerrit Error Messages]
