Bird
Raised Fist0
Gitdevops~3 mins

Creating and switching in one step in Git - Step-by-Step CLI Walkthrough

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
Introduction
When working on different features or fixes, you often need to create a new branch and start working on it immediately. Git lets you do both actions in one simple command, saving time and avoiding mistakes.
When you want to start working on a new feature without affecting the main code.
When you need to fix a bug and want to isolate your changes.
When you want to experiment with code changes safely.
When you want to organize your work by topics or tasks.
When you want to avoid switching branches separately after creating them.
Commands
This command creates a new branch named 'feature-login' and switches to it immediately so you can start working there.
Terminal
git switch -c feature-login
Expected OutputExpected
Switched to a new branch 'feature-login'
-c - Creates a new branch and switches to it in one step
This command lists all branches and shows which one you are currently on, confirming the switch.
Terminal
git branch
Expected OutputExpected
main * feature-login
Key Concept

If you remember nothing else from this pattern, remember: use 'git switch -c branch-name' to create and switch branches in one step.

Common Mistakes
Running 'git branch feature-login' and then forgetting to switch to it.
You create the branch but stay on the old branch, so your changes go to the wrong place.
Use 'git switch -c feature-login' to create and switch in one command.
Using 'git checkout -b feature-login' instead of 'git switch -c feature-login'.
While 'git checkout -b' works, 'git switch' is clearer and recommended in newer Git versions.
Use 'git switch -c feature-login' for clarity and modern best practice.
Summary
Use 'git switch -c branch-name' to create and switch to a new branch in one step.
Verify your current branch with 'git branch' to avoid confusion.
Avoid creating a branch without switching to it to prevent working on the wrong 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