Set the branch of a checkout and update.


brz switch [TO_LOCATION]

-b, --create-branch

Create the target branch from this one before switching to it.

-d ARG, --directory=ARG

Branch to operate on, instead of working directory.


Switch even if local commits will be lost.

-h, --help

Show help message.

-q, --quiet

Only display errors and warnings.

-r ARG, --revision=ARG

See “help revisionspec” for details.


Store and restore uncommitted changes in the branch.


Show usage message and options.

-v, --verbose

Display more information.


For lightweight checkouts, this changes the branch being referenced. For heavyweight checkouts, this checks that there are no local commits versus the current bound branch, then it makes the local branch a mirror of the new location and binds to it.

In both cases, the working tree is updated and uncommitted changes are merged. The user can commit or revert these as they desire.

Pending merges need to be committed or reverted before using switch.

The path to the branch to switch to can be specified relative to the parent directory of the current branch. For example, if you are currently in a checkout of /path/to/branch, specifying ‘newbranch’ will find a branch at /path/to/newbranch.

Bound branches use the nickname of its master branch unless it is set locally, in which case switching will update the local nickname to be that of the master.