========== Checkout ========== Initialize Git repository and VB for test:: $ git init Initialized empty Git repository in * (glob) $ touch README.txt $ git add . $ git commit --message 'First commit' > /dev/null $ vb init ``vb checkout`` creates a branch and make a clone repository to work with it. Working copy of the root repository is not changed. ``vb checkout`` takes argument like ``git branch``:: $ vb checkout branch-a $ git branch branch-a * master $ cd .vb/branch-a $ git branch * branch-a master $ git remote locmain $ cd ../.. Branch to be based on is default to the currently checked out one. But it can be specified:: $ echo 'edit' > README.txt $ git commit --all --message 'Second commit' > /dev/null $ vb checkout branch-b branch-a $ git branch branch-a branch-b * master $ git log --format=oneline * Second commit* (glob) * First commit* (glob) $ cd .vb/branch-b $ git branch * branch-b master $ git log --format=oneline * First commit* (glob) $ cd ../.. Existing branch can be used. In that case, repository is just checked out in ``.vb/BRANCH``:: $ git branch branch-c $ vb checkout --existing branch-c $ cd .vb/branch-c $ git branch * branch-c master $ cd ../.. Passing ``--existing`` for non-existing branch fails:: $ vb checkout --existing non-existing-branch Branch 'non-existing-branch' does not exist [1] If repository at ``.vb/BRANCH`` already exist, it does not do anything:: $ vb checkout branch-a .vb/branch-a already exists $ vb checkout --existing branch-c .vb/branch-c already exists