📖 Scenario: You are managing multiple worktrees in a Git repository to work on different features simultaneously. Now, you want to clean up by removing a specific worktree safely without affecting your main repository.
🎯 Goal: Learn how to list existing Git worktrees, identify the one to remove, and then remove it properly using Git commands.
📋 What You'll Learn
Use git worktree list to see all worktrees
Identify the path of the worktree to remove
Use git worktree remove <path> to remove the worktree
Print the updated list of worktrees after removal
💡 Why This Matters
🌍 Real World
Developers often use multiple worktrees to work on different features or bug fixes simultaneously. Removing unused worktrees keeps the workspace clean and avoids confusion.
💼 Career
Knowing how to manage and remove Git worktrees is useful for software developers, DevOps engineers, and anyone working with Git in collaborative projects.
Progress0 / 4 steps
1
List all Git worktrees
Run the command git worktree list to display all existing worktrees in your repository.
Git
Hint
This command shows all worktrees with their paths and branches.
2
Identify the worktree path to remove
Assign the path of the worktree you want to remove to a variable called worktree_path. For example, if the worktree path is /home/user/project/feature1, write worktree_path="/home/user/project/feature1".
Git
Hint
Use the exact path shown in the git worktree list output for the worktree you want to remove.
3
Remove the specified worktree
Use the command git worktree remove <worktree_path> to remove the worktree stored in the variable worktree_path. Write the command exactly as git worktree remove $worktree_path.
Git
Hint
This command deletes the worktree directory and unregisters it from Git.
4
Verify the worktree removal
Run git worktree list again to print the updated list of worktrees and confirm the removal.
Git
Hint
The removed worktree should no longer appear in the list.
Practice
(1/5)
1. What does the command git worktree remove <path> do?
easy
A. Deletes the specified extra worktree folder and unregisters it from Git.
B. Creates a new worktree at the specified path.
C. Lists all existing worktrees in the repository.
D. Resets the current branch to the specified commit.
Solution
Step 1: Understand the command purpose
The command git worktree remove <path> is used to remove an extra worktree folder from your Git repository.
Step 2: Effect of the command
It deletes the worktree folder at the given path and unregisters it from Git, keeping the project clean.
Final Answer:
Deletes the specified extra worktree folder and unregisters it from Git. -> Option A
Quick Check:
Remove worktree = Delete folder + unregister [OK]
Hint: Remove worktree means delete folder and unregister it [OK]
Common Mistakes:
Confusing remove with create or list commands
Thinking it resets branches
Assuming it only unregisters without deleting folder
2. Which of the following is the correct syntax to remove a worktree located at ./feature-branch?
easy
A. git worktree remove ./feature-branch
B. git worktree rm ./feature-branch
C. git remove worktree ./feature-branch
D. git worktree delete ./feature-branch
Solution
Step 1: Recall correct command syntax
The correct command to remove a worktree is git worktree remove <path>.
Hint: Use 'git worktree remove' followed by path [OK]
Common Mistakes:
Using 'delete' instead of 'remove'
Swapping command order like 'git remove worktree'
Using shorthand 'rm' which is invalid here
3. Given you have a worktree at ./dev, what will be the output of running git worktree list after git worktree remove ./dev?
medium
A. The list will still show ./dev but marked as removed.
B. The list will no longer show the ./dev worktree.
C. The command will fail with an error about ./dev.
D. The list will show ./dev and all other worktrees unchanged.
Solution
Step 1: Understand what 'git worktree remove' does
It deletes the worktree folder and unregisters it from Git, so it is no longer tracked.
Step 2: Effect on 'git worktree list'
After removal, the worktree at ./dev will not appear in the list anymore.
Final Answer:
The list will no longer show the ./dev worktree. -> Option B
Quick Check:
Remove worktree means it disappears from list [OK]
Hint: Removed worktrees vanish from 'git worktree list' output [OK]
Common Mistakes:
Expecting removed worktree to still appear in list
Thinking it shows as 'removed' but still listed
Assuming command errors out after removal
4. You tried to remove a worktree with git worktree remove ./test but got an error saying the path is not a worktree. What is the likely cause?
medium
A. The repository is corrupted and needs reinitialization.
B. You need to use git worktree delete instead of remove.
C. You must be on the main branch to remove any worktree.
D. The path ./test does not exist or is not registered as a worktree.
Solution
Step 1: Analyze the error message
The error says the path is not a worktree, meaning Git does not recognize it as one.
Step 2: Identify common causes
This usually happens if the path does not exist or was never added as a worktree.
Final Answer:
The path ./test does not exist or is not registered as a worktree. -> Option D
Quick Check:
Path must exist and be registered to remove [OK]
Hint: Check path exists and is registered worktree before removing [OK]
Common Mistakes:
Using wrong command like 'delete' instead of 'remove'
Assuming branch affects removal
Thinking repo corruption causes this error
5. You have multiple worktrees: ./feature1, ./feature2, and ./feature3. You want to remove ./feature2 but keep its changes saved. What is the best approach?
hard
A. Run git worktree remove ./feature2 without saving changes; Git saves them automatically.
B. Directly delete the ./feature2 folder without Git commands.
C. Commit or stash changes in ./feature2, then run git worktree remove ./feature2.
D. Switch to main branch and delete ./feature2 folder manually.
Solution
Step 1: Preserve changes before removal
To keep changes in a worktree, you must commit or stash them before removing the worktree.
Step 2: Remove the worktree properly
After saving changes, use git worktree remove ./feature2 to safely remove the worktree folder and unregister it.
Final Answer:
Commit or stash changes in ./feature2, then run git worktree remove ./feature2. -> Option C
Quick Check:
Save changes first, then remove worktree [OK]
Hint: Save changes (commit/stash) before removing worktree [OK]
Common Mistakes:
Deleting folder manually causing data loss
Assuming Git auto-saves changes on remove
Removing without saving changes first
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.