---
title: "Git Switch For Faster Branch Management"
description: "With Git, there are often many different ways to do the same thing. A lot of your work with Git will involve the formation of habits, but there may be occasions in which you will adapt new commands..."
url: https://www.inmotionhosting.com/support/website/git/git-switch/
date: 2021-10-28
modified: 2021-11-18
author: "Christopher Maiorana"
categories: ["Git"]
type: post
lang: en
---

# Git Switch For Faster Branch Management

![Git switch](https://www.inmotionhosting.com/support/wp-content/uploads/2021/10/Git-Switch-1024x538.png)

With Git, there are often many different ways to do the same thing. A lot of your work with Git will involve the formation of habits, but there may be occasions in which you will adapt new commands to improve your workflow. The Git `switch` command is relatively new, but it works as a worthy alternative to the `checkout` command when you need to rapidly switch between different branches or create new branches. This procedure goes along well with [creating your own Git server](https://www.inmotionhosting.com/support/website/git/git-server/) on [unmetered VPS](https://www.inmotionhosting.com/vps-hosting/unmetered-vps) (and other VPS) hosting is not what you think.

- [Quick Branch Switching](#git-switch-branch)
- [Creating Branches With a Git Switch](#creating-a-branch-with-switch)
- [Instant Remote Tracking](#remote-branch)

For some new users, remembering the `switch` command may be an easier way to learn about managing branches. The `checkout` command supports many of the same actions, but it will also does a lot more, so substituting in `switch` for branch management can potentially simplify your workflow — and reserve `checkout` for more specific needs.

For developers or sysadmins experienced with the command line, get high availability and root access for your application, service, and websites with [Cloud VPS Hosting](https://www.inmotionhosting.com/cloud-vps).

## Quick Branch Switching

The most basic example of `switch` is as simple as naming a branch:

git switch <branch name>

To save yourself some extra typing, you can switch back to the previous branch you were working on with a simple `-`:

git switch -

But, as with the `checkout` command, you will want to make sure your working state is clean before attempting a switch. If you have uncommitted changes in your working directory on the current branch you will receive a warning if attempting a switch:

error: Your local changes to the following files would be overwritten by checkout:
new-file.txt
Please commit your changes or stash them before you switch branches.
Aborting

At this point, you can [stash your changes](https://www.inmotionhosting.com/support/website/git/stash/) if you’re not ready to commit them. Or, go ahead and commit these changes before running your `git switch`. But again, you have other options.

For example, imagine you made changes and don’t want to stash or commit them. Rather, you would just like to forget these changes and move on. You can use the `--discard-changes` option to switch without preserving your changes:

git switch <alternate branch> --discard-changes

## Creating Branches With a Git Switch

With `switch` you can also create new branches. This works similarly to the `checkout` command.

git switch -c <name of new branch>

## Instant Remote Tracking

The `switch` command also saves some time when tracking remote branches. You may recall in the … we set up a new branch, pushed it to the remote, and then set it as an upstream branch for itself.

You can skip a few of these steps if there is already a remote branch out there that you want to bring it into your local configuration:

git switch <name of remote branch>

This command not only creates the remote branch in your local workstation but also switches to it and sets it up for tracking, which means you can run a `git push` or `git pull` without having to specify the branch.

---

Well done! You now know how to quickly switch between Git branches using the `switch` command. If you have any questions about this procedure feel free to drop them below.
