Git Checkout vs. Git Switch
git checkout
-
Switch branches:
git checkout <branch> # Switch to an existing branch
-
Create and switch to a new branch:
git checkout -b <new-branch> # Create and switch to a new branch
-
Restore files from a specific commit or branch:
git checkout <commit> -- <file> # Restore a file from a specific commit
git switch
(modern alternative)
-
Switch branches:
git switch <branch> # Switch to an existing branch
-
Create and switch to a new branch:
git switch -c <new-branch> # Create and switch to a new branch
Key differences
Command | Purpose | Notes |
---|---|---|
git checkout <branch> |
Switch branches | Older, more versatile command. |
git checkout -b <branch> |
Create and switch to a new branch | Combines branch creation and switch. |
git checkout <commit> -- <file> |
Restore a file from a commit | Useful for recovering files. |
git switch <branch> |
Switch branches | Modern, focused alternative. |
git switch -c <branch> |
Create and switch to a new branch | Simpler and more intuitive. |
When to use?
-
git checkout
:- Use for restoring files from a specific commit or branch.
- Still works for switching branches, but
git switch
is preferred.
-
git switch
:- Use for switching branches or creating new branches.
- Cleaner and more focused than
git checkout
.
Pro tips
- Recover deleted branches:
Use git reflog
to find the branch’s last commit, then recreate it:
git switch -c <branch> <hash>
- Use git switch for branch operations. It’s designed specifically for branches, making it more intuitive.