git switch <branch_name>
git checkout <branch_name>
[git checkout "branch_name"]
is another way to say:
[git checkout -b branch_name origin/branch_name]
in case "branch_name" exists only remotely.
[git checkout -b branch_name origin/branch_name] is useful in case you have multiple remotes.
Regarding [git checkout origin 'another_branch'] I'm not sure this is possible, AFAK you can do this using "fetch" command -- [git fetch origin 'another_branch']
git checkout 'another_branch'
git checkout -b branch-name
git checkout master # to be sure you are on master branch
git push origin HEAD:main # and then push the current branch (as master) to main
-or-
git push --force origin HEAD:main