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 fails 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]
