A Git worktree is a separate working directory linked to the same repository, allowing you to work on multiple branches simultaneously without switching branches in one directory.
Click to reveal answer
beginner
What does 'git stash' do?
Git stash temporarily saves your uncommitted changes so you can switch branches or work on something else without committing those changes.
Click to reveal answer
intermediate
When should you use a worktree instead of stashing?
Use a worktree when you want to work on multiple branches at the same time with separate folders, avoiding the need to stash and unstash changes repeatedly.
Click to reveal answer
intermediate
What is a limitation of using git stash?
Git stash only saves changes temporarily and can be forgotten or lost if not applied; it also requires switching back and forth between branches to apply changes.
Click to reveal answer
intermediate
How does using worktrees improve workflow?
Worktrees let you keep multiple branches checked out in different folders, so you can test or develop features side-by-side without interrupting your main work.
Click to reveal answer
What is the main benefit of using git worktrees?
AWork on multiple branches at the same time in separate folders
BTemporarily save changes without committing
CDelete branches safely
DMerge branches automatically
✗ Incorrect
Git worktrees allow you to have multiple working directories for different branches simultaneously.
What happens when you run 'git stash'?
AA new branch is created
BYour branch is deleted
CYour changes are saved temporarily and removed from the working directory
DYour repository is cloned
✗ Incorrect
Git stash saves your uncommitted changes temporarily and clears them from your current working directory.
Which scenario is best suited for using git stash?
AQuickly saving changes before switching branches
BWorking on two branches at the same time
CCreating a new repository
DDeleting untracked files
✗ Incorrect
Git stash is ideal for temporarily saving changes to switch branches quickly.
What is a downside of relying only on git stash?
AIt creates multiple folders automatically
BChanges can be forgotten or lost if not reapplied
CIt merges branches without conflicts
DIt commits changes permanently
✗ Incorrect
Stashed changes are temporary and can be lost if not applied back to the working directory.
How do git worktrees affect your file system?
AThey delete your current folder
BThey merge all branches into one folder
CThey compress your repository
DThey create additional folders for each checked-out branch
✗ Incorrect
Git worktrees create separate folders so you can work on different branches simultaneously.
Explain when you would choose to use git worktrees instead of git stash.
Think about how you manage multiple tasks or projects at once.
You got /4 concepts.
Describe the main purpose of git stash and a limitation you should be aware of.
Consider stash like a temporary drawer for your work.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of git stash in Git?
easy
A. Create a new branch in a separate folder
B. Temporarily save changes and clean the working directory
C. Merge two branches automatically
D. Delete untracked files from the repository
Solution
Step 1: Understand what git stash does
git stash saves your current changes temporarily and cleans your working directory so you can switch branches or work on something else without committing.
Step 2: Compare with other options
Creating a new branch in a separate folder is done with worktrees, not stash. Merging branches and deleting untracked files are unrelated commands.
Final Answer:
Temporarily save changes and clean the working directory -> Option B
2. Which command correctly creates a new worktree for branch feature in folder feature-folder?
easy
A. git worktree add feature-folder feature
B. git stash create feature-folder feature
C. git branch add feature-folder feature
D. git checkout -b feature feature-folder
Solution
Step 1: Recall the syntax for adding a worktree
The correct syntax is git worktree add <path> <branch>. So git worktree add feature-folder feature creates a new folder with the branch checked out.
Step 2: Check other options for correctness
git stash create is invalid for this purpose. git branch add is not a valid command. git checkout -b creates a branch but does not create a separate folder.
Final Answer:
git worktree add feature-folder feature -> Option A
3. You have uncommitted changes on branch main. You want to switch to feature branch without losing changes. What happens if you run git stash then git checkout feature?
medium
A. Git throws an error and refuses to switch branches
B. Changes are lost permanently after checkout
C. Changes are saved temporarily, branch switches cleanly
D. Changes are automatically merged into feature branch
Solution
Step 1: Understand what git stash does before switching
git stash saves your uncommitted changes safely and cleans your working directory so you can switch branches without conflicts.
Step 2: Effect of git checkout feature after stash
Since the working directory is clean after stash, Git switches to feature branch without errors or losing changes. You can later apply the stash.
Final Answer:
Changes are saved temporarily, branch switches cleanly -> Option C
Hint: Stash before checkout saves changes safely [OK]
Common Mistakes:
Assuming changes are lost after stash
Expecting automatic merge of stashed changes
Thinking Git errors on switching with stash
4. You tried to create a worktree with git worktree add feature but got an error. What is the most likely cause?
medium
A. The folder name is missing, causing a syntax error
B. You have uncommitted changes that block worktree creation
C. The branch feature does not exist
D. You forgot to stash changes before adding worktree
Solution
Step 1: Check the command syntax
git worktree add requires two arguments: folder path and branch name. The command git worktree add feature only has one argument, so it is missing the folder name.
Step 2: Understand error cause
Missing folder argument causes Git to throw a syntax error. Uncommitted changes or branch existence issues cause different errors, but syntax error is most likely here.
Final Answer:
The folder name is missing, causing a syntax error -> Option A
Quick Check:
Worktree add needs folder and branch [OK]
Hint: Worktree add needs folder then branch [OK]
Common Mistakes:
Ignoring missing folder argument
Assuming uncommitted changes block worktree add
Confusing stash necessity with worktree creation
5. You want to work on two branches, main and feature, simultaneously without committing unfinished work on main. Which approach is best?
hard
A. Use git stash to save changes on main and switch branches repeatedly
B. Delete the feature branch and work only on main
C. Commit unfinished work on main before switching to feature
D. Create a worktree for feature branch to work in a separate folder
Solution
Step 1: Understand the need for parallel work
You want to work on two branches at the same time without committing unfinished work on main. Stashing and switching repeatedly is slow and error-prone.
Step 2: Choose the best tool for parallel branch work
Worktrees allow you to have multiple branches checked out in different folders simultaneously. This lets you work on main and feature side by side without switching or stashing.
Final Answer:
Create a worktree for feature branch to work in a separate folder -> Option D
Quick Check:
Worktrees = parallel branches in folders [OK]
Hint: Worktrees let you work on branches side-by-side [OK]
Common Mistakes:
Using stash repeatedly instead of worktrees
Committing unfinished work prematurely
Deleting needed branches accidentally
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.