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.

Jan 15, 2025