what does checkout -b do in git code example

Example: git checkout -b

# git checkout regarding branches switch

git checkout <branch_name>
# will take you to that branch

git checkout -b <new_branch> 
# will create a new branch based on the branch you are already in
# if this branch already exists then you will get the following msg:
# 'A branch named <new_branch> already exists.'

git checkout -B <new_branch>
# will create a new branch.
# WATCH OUT though! if this branch already exists it will reset it!

git checkout origin/<branch_name> -b <branch_name_2>
# will create a new branch based on the remote one