Bird
Raised Fist0
Gitdevops~3 mins

Creating and switching in one step in Git - Why You Should Know This

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
The Big Idea

What if you could start working on a new task with just one command instead of two?

The Scenario

Imagine you are working on a project and need to start a new feature. You have to create a new branch and then switch to it. You do this every time you want to work on something new.

The Problem

Doing this in two steps every time is slow and easy to forget. You might create the branch but forget to switch, or switch to the wrong branch. This wastes time and can cause mistakes in your work.

The Solution

Git lets you create and switch to a new branch in one simple command. This saves time and reduces errors by combining two steps into one smooth action.

Before vs After
Before
git branch new-feature
git checkout new-feature
After
git switch -c new-feature
What It Enables

You can quickly start working on new ideas without stopping to manage branches manually.

Real Life Example

A developer needs to fix a bug urgently. Instead of typing two commands, they create and switch to the fix branch instantly, saving precious time.

Key Takeaways

Manual branch creation and switching is slow and error-prone.

Creating and switching in one step speeds up your workflow.

This simple command helps you focus on coding, not managing branches.

Practice

(1/5)
1. What does the command git switch -c feature do?
easy
A. Lists all branches including 'feature'
B. Creates a new branch named 'feature' and switches to it
C. Switches to the existing branch named 'feature' without creating it
D. Deletes the branch named 'feature'

Solution

  1. Step 1: Understand the git switch -c command

    The -c option means "create" a new branch and switch to it immediately.
  2. Step 2: Apply to the branch name 'feature'

    The command creates a new branch called 'feature' and switches the working directory to it.
  3. Final Answer:

    Creates a new branch named 'feature' and switches to it -> Option B
  4. Quick Check:

    git switch -c = create and switch [OK]
Hint: Remember: -c means create and switch in one step [OK]
Common Mistakes:
  • Thinking it only switches without creating
  • Confusing with branch deletion commands
  • Assuming it lists branches
2. Which of the following is the correct git switch syntax to create and switch to a new branch named dev?
easy
A. git switch -c dev
B. git switch dev -c
C. git checkout -b dev
D. git branch -c dev

Solution

  1. Step 1: Recall the correct order of options in git switch

    The option -c must come before the branch name to create and switch.
  2. Step 2: Check each option

    git switch -c dev is the correct syntax. git switch dev -c has wrong order. git checkout -b dev uses checkout instead of switch. git branch -c dev is invalid syntax.
  3. Final Answer:

    git switch -c dev -> Option A
  4. Quick Check:

    Correct syntax = git switch -c branch [OK]
Hint: Option -c always comes before branch name in git switch [OK]
Common Mistakes:
  • Placing -c after branch name
  • Confusing git switch with git branch
  • Using git branch -c which is invalid
3. What will be the output of the following commands?
git switch -c test-branch
git branch --show-current
medium
A. Error: branch does not exist
B. main
C. No output
D. test-branch

Solution

  1. Step 1: Create and switch to 'test-branch'

    The first command creates a new branch named 'test-branch' and switches to it.
  2. Step 2: Show current branch

    The second command prints the name of the current branch, which is now 'test-branch'.
  3. Final Answer:

    test-branch -> Option D
  4. Quick Check:

    Current branch after switch -c = new branch name [OK]
Hint: After switch -c, current branch is the new branch [OK]
Common Mistakes:
  • Assuming it stays on main branch
  • Expecting no output from show-current
  • Thinking it causes an error
4. You run git switch -c featureX but get an error: fatal: A branch named 'featureX' already exists. What should you do to switch to that branch?
medium
A. Run git switch featureX
B. Run git switch -c featureX again
C. Run git branch featureX
D. Run git checkout -b featureX

Solution

  1. Step 1: Understand the error

    The error means the branch 'featureX' already exists, so you cannot create it again.
  2. Step 2: Switch to existing branch

    Use git switch featureX without -c to switch to the existing branch.
  3. Final Answer:

    Run git switch featureX -> Option A
  4. Quick Check:

    Use switch without -c to switch existing branch [OK]
Hint: Use git switch without -c to switch existing branch [OK]
Common Mistakes:
  • Trying to create branch again with -c
  • Using git branch without switching
  • Using checkout -b which creates new branch
5. You want to create a new branch named release-1.0 and immediately start working on it. Which command correctly does this and also sets the upstream to origin/release-1.0 in one step?
hard
A. git checkout -b release-1.0 origin/release-1.0
B. git branch release-1.0 && git switch release-1.0
C. git switch -c release-1.0 --track origin/release-1.0
D. git switch release-1.0 -c --set-upstream origin/release-1.0

Solution

  1. Step 1: Understand creating and switching with upstream

    The git switch -c command can create and switch to a branch. The --track option sets the upstream branch.
  2. Step 2: Analyze options

    git switch -c release-1.0 --track origin/release-1.0 creates the branch, switches to it, and sets upstream in one step. git branch release-1.0 && git switch release-1.0 requires two commands. git checkout -b release-1.0 origin/release-1.0 creates and switches from the remote commit and sets upstream automatically. git switch release-1.0 -c --set-upstream origin/release-1.0 has wrong option order and syntax.
  3. Final Answer:

    git switch -c release-1.0 --track origin/release-1.0 -> Option C
  4. Quick Check:

    Use switch -c with --track to create, switch, and set upstream [OK]
Hint: Use --track with switch -c to set upstream in one step [OK]
Common Mistakes:
  • Not setting upstream in one step
  • Using git branch and switch separately
  • Wrong option order or syntax