Checkout a branch or paths to the working tree.
# To create and switch to a new branch:
git checkout -b <branch_name>
# To create and switch to a new branch based on a specific reference (branch, remote/branch, tag are examples of valid references):
git checkout -b <branch_name> <reference>
# To switch to an existing local branch:
git checkout <branch_name>
# To switch to the previously checked out branch:
git checkout -
# To switch to an existing remote branch:
git checkout --track <remote_name>/<branch_name>
# To discard all unstaged changes in the current directory (see 'git reset' for more undo-like commands):
git checkout .
# To discard unstaged changes to a given file:
git checkout <file_name>
# To replace a file in the current directory with the version of it committed in a given branch:
git checkout <branch_name> -- <file_name>