git checkout(1) -b createbranch startpoint
Checkout a branch or paths to the working tree
-b
    Create a new branch named <new_branch> and start it at <start_point>; see git-branch(1) for details.
Updates files in the working tree to match the version in the index or the specified tree. If no paths
are given, git checkout will also update HEAD to set the specified branch as the current branch.

<branch>
    Branch to checkout; if it refers to a branch (i.e., a name that, when prepended with "refs/heads/",
    is a valid ref), then that branch is checked out. Otherwise, if it refers to a valid commit, your
    HEAD becomes "detached" and you are no longer on any branch (see below for details).

    As a special case, the "@{-N}" syntax for the N-th last branch checks out the branch (instead of
    detaching). You may also specify - which is synonymous with "@{-1}".

    As a further special case, you may use "A...B" as a shortcut for the merge base of A and B if there
    is exactly one merge base. You can leave out at most one of A and B, in which case it defaults to
    HEAD.

<new_branch>
    Name for the new branch.

<start_point>
    The name of a commit at which to start the new branch; see git-branch(1) for details. Defaults to
    HEAD.

<tree-ish>
    Tree to checkout from (when paths are given). If not specified, the index will be used.
source manpages: git-checkout