Bird
Raised Fist0
Gitdevops~10 mins

Creating and switching in one step in Git - Try It Yourself

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
Creating and switching branches in one step with Git
📖 Scenario: You are working on a project using Git for version control. You need to create a new branch and switch to it quickly to start working on a new feature.
🎯 Goal: Learn how to create a new Git branch and switch to it in a single command.
📋 What You'll Learn
Create a new branch named feature-xyz
Switch to the new branch immediately after creating it
Verify the current branch is feature-xyz
💡 Why This Matters
🌍 Real World
Creating and switching branches quickly helps developers work on new features or fixes without disturbing the main code.
💼 Career
Branch management is a fundamental skill for software developers, DevOps engineers, and anyone working with version control systems like Git.
Progress0 / 4 steps
1
Initialize a Git repository
Run the command git init to create a new Git repository in your current folder.
Git
Hint

Use git init to start a new Git repository.

2
Create a new branch variable
Create a variable called branch_name and set it to the string feature-xyz.
Git
Hint

Use branch_name='feature-xyz' to store the branch name.

3
Create and switch to the new branch in one step
Use the command git checkout -b $branch_name to create and switch to the branch named feature-xyz. Use the variable branch_name in the command.
Git
Hint

Use git checkout -b $branch_name to create and switch branches in one step.

4
Verify the current branch
Run the command git branch --show-current to display the current branch name and confirm it is feature-xyz.
Git
Hint

Use git branch --show-current to see the active branch.

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