Bird
Raised Fist0
Gitdevops~20 mins

Creating and switching in one step in Git - Practice Exercises

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
Challenge - 5 Problems
🎖️
Branch Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
Output of creating and switching to a new branch
What is the output of the command git switch -c feature when run in a clean repository?
Git
git switch -c feature
ASwitched to a new branch 'feature'
Berror: pathspec 'feature' did not match any file(s) known to git
CAlready on 'feature'
Dfatal: You are not currently on a branch.
Attempts:
2 left
💡 Hint
The command creates a new branch and switches to it in one step.
💻 Command Output
intermediate
2:00remaining
Error when switching to an existing branch with -c
What happens if you run git switch -c main when the branch 'main' already exists?
Git
git switch -c main
Aerror: pathspec 'main' did not match any file(s) known to git
Bfatal: A branch named 'main' already exists.
CSwitched to branch 'main'
DSwitched to a new branch 'main'
Attempts:
2 left
💡 Hint
The -c option tries to create a new branch, so it fails if the branch exists.
🔀 Workflow
advanced
2:00remaining
Correct command to create and switch to a new branch in one step
Which command correctly creates and switches to a new branch named 'release' in one step?
Agit switch -c release
Bgit switch release -c
Cgit checkout -b release
Dgit branch release && git switch release
Attempts:
2 left
💡 Hint
The git switch command with -c creates and switches in one step.
Troubleshoot
advanced
2:00remaining
Troubleshooting error when creating and switching branch
You run git switch -c feature but get the error: fatal: You have unstaged changes. What is the most likely cause?
AYou are not inside a Git repository.
BThe branch 'feature' already exists.
CYou have uncommitted changes that conflict with the new branch creation.
DThe remote repository is unreachable.
Attempts:
2 left
💡 Hint
Git prevents switching branches if unstaged changes would be lost.
Best Practice
expert
2:00remaining
Best practice for creating and switching branches in scripts
In an automated script, which command is best to create and switch to a new branch 'hotfix' only if it does not already exist, without causing errors?
Agit branch hotfix || git switch hotfix
Bgit switch -c hotfix
Cgit switch hotfix || git switch -c hotfix
Dgit switch hotfix 2>/dev/null || git switch -c hotfix
Attempts:
2 left
💡 Hint
Suppress errors when switching to existing branch, then create if missing.

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