Depending on whether you're working with a single remote (such as
origin), or multiple remotes, you have the following options to check out a remote git branch:
In Git 2.23+, you can simply use the
git switch command, which will create a new local branch based on the remote branch of the same name (if it does not exist already) and set up a tracking relationship:
# git 2.23+ git fetch git switch remote_branch_name
Similarly, in Git 1.6.6+, if you have a single remote, you can use the
git checkout command to check out a remote branch, like so:
# git 1.6.6+ git fetch git checkout remote_branch_name
These commands will create the branch locally if it doesn't exist already and set the upstream to the remote-tracking branch "
Please note that this is different from
git checkout remote_name/branch_name. Using that command would result in a detached
HEAD (unnamed branch).
You may, alternatively, also use either set of the following commands (especially when you want to name the local branch differently):
git fetch remote_name git switch -c local_branch_name --track remote_name/remote_branch_name
git fetch remote_name git checkout -b local_branch_name --track remote_name/remote_branch_name
If you have multiple remotes, then you can use either set of the following commands to check out a specific remote branch:
# git 2.23+ git fetch remote_name git switch -c local_branch_name remote_name/remote_branch_name
git fetch remote_name git checkout -b local_branch_name remote_name/remote_branch_name
Please note that in older versions of git, you may have to explicitly add the
-t) option as well.
Either of the commands mentioned above will create the local branch called "
local_branch_name" and set the upstream to the remote-tracking branch "
If your local branch and remote branch names are the same, then you may use either of the following shortcuts:
# git 2.23+ git fetch remote_name git switch --track remote_name/remote_branch_name
# git 1.6.1+ git fetch remote_name git checkout --track remote_name/remote_branch_name
You can also use the shorthand flag
-t in place of the
--track option for an even shorter syntax.
Hope you found this post useful. It was published (and was last revised ). Please show your love and support by sharing this post.