📖 Scenario: You are working on a software project using Git. You want to work on a new feature without disturbing your current work. Using Git worktrees allows you to have multiple working directories linked to the same repository.
🎯 Goal: Learn how to create a new Git worktree for a new branch and switch to it safely.
📋 What You'll Learn
Create a new branch called feature-xyz
Create a new Git worktree in a folder called feature-xyz
Switch to the new branch in the new worktree
Verify the current branch in the new worktree
💡 Why This Matters
🌍 Real World
Developers often need to work on multiple features or fixes at the same time. Git worktrees let them do this without switching branches in the same folder, avoiding confusion and lost work.
💼 Career
Understanding Git worktrees is useful for software developers, DevOps engineers, and anyone managing code changes in teams. It helps maintain clean workflows and improves productivity.
Progress0 / 4 steps
1
Create a new branch called feature-xyz
Run the Git command to create a new branch named feature-xyz without switching to it.
Git
Hint
Use git branch followed by the branch name to create a branch.
2
Create a new Git worktree in folder feature-xyz
Use the Git command to create a new worktree in a folder named feature-xyz and check out the branch feature-xyz there.
Git
Hint
Use git worktree add <path> <branch> to create a new worktree.
3
Switch to the new worktree folder and check the current branch
Change directory to the new worktree folder feature-xyz and run the Git command to show the current branch.
Git
Hint
Use cd feature-xyz to enter the folder and git branch --show-current to see the branch name.
4
Display the current branch name
Print the output of the command that shows the current branch name in the new worktree folder.
Git
Hint
The output should be the branch name feature-xyz.
Practice
(1/5)
1. What is the main purpose of creating a Git worktree?
easy
A. To work on multiple branches simultaneously in separate folders
B. To merge two branches automatically
C. To delete a branch safely
D. To compress the repository size
Solution
Step 1: Understand what a worktree is
A Git worktree allows you to have multiple working directories linked to the same repository.
Step 2: Identify the main use case
This lets you work on different branches at the same time without switching branches in one folder.
Final Answer:
To work on multiple branches simultaneously in separate folders -> Option A
git worktree add ../test-branch test
cd ../test-branch
git branch --show-current
What will be the output of the last command?
medium
A. master
B. main
C. test
D. detached HEAD
Solution
Step 1: Understand what 'git worktree add' does
This command creates a new folder with the specified branch checked out.
Step 2: Check current branch in new worktree
After changing directory, git branch --show-current shows the branch name checked out, which is 'test'.
Final Answer:
test -> Option C
Quick Check:
Worktree folder shows branch name = test [OK]
Hint: Worktree folder shows the branch you added [OK]
Common Mistakes:
Assuming default branch 'main' or 'master'
Thinking it shows detached HEAD
Confusing branch names
4. You run git worktree add ../new-feature without specifying a branch. What will happen?
medium
A. Git creates a new worktree with the current branch checked out
B. Git creates a new branch automatically
C. Git throws an error asking for a branch name
D. Git creates a detached HEAD worktree at the current commit
Solution
Step 1: Check behavior when branch is omitted
If no branch is specified, Git creates a worktree at the current commit in detached HEAD state.
Step 2: Understand the result
This means the worktree is not on any branch but on a specific commit.
Final Answer:
Git creates a detached HEAD worktree at the current commit -> Option D
Quick Check:
No branch given = detached HEAD worktree [OK]
Hint: No branch? Worktree is detached HEAD at current commit [OK]
Common Mistakes:
Expecting an error without branch
Thinking it uses current branch name
Assuming a new branch is created
5. You want to work on two branches, main and feature, simultaneously. Your repo has no feature branch yet. Which sequence correctly creates a worktree for feature and switches to it?
hard
A. git worktree add ../feature feature
cd ../feature
B. git branch feature
git worktree add ../feature feature
cd ../feature
C. git worktree add ../feature feature
cd ../feature
git checkout -b feature
D. git checkout -b feature
git worktree add ../feature feature
cd ../feature
Solution
Step 1: Create the branch before adding worktree
You must create the branch 'feature' first because it does not exist yet.
Step 2: Add the worktree for the new branch and switch directory
Then add the worktree pointing to 'feature' and change to that folder.
Final Answer:
git branch feature
git worktree add ../feature feature
cd ../feature -> Option B
Quick Check:
Create branch first, then add worktree [OK]
Hint: Create branch first, then add worktree for it [OK]
Common Mistakes:
Adding worktree before branch exists
Creating branch inside worktree folder
Forgetting to switch directory
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.