Bird
Raised Fist0
Gitdevops~5 mins

Why worktrees enable parallel work in Git - Why It Works

Choose your learning style10 modes available
Introduction
Sometimes you want to work on different features or fixes at the same time without mixing changes. Git worktrees let you have multiple working folders linked to the same repository, so you can work on different branches side by side.
When you want to develop a new feature while keeping your current work untouched.
When you need to test a bug fix on a separate branch without disturbing your main code.
When you want to review or build a different branch without switching your current workspace.
When you want to run multiple versions of your project simultaneously for comparison.
When you want to avoid the hassle of stashing or committing unfinished work before switching branches.
Commands
This command creates a new working directory outside your main repo folder at ../feature-branch and checks out the 'feature' branch there. It lets you work on 'feature' branch in parallel.
Terminal
git worktree add ../feature-branch feature
Expected OutputExpected
Preparing worktree (checking out 'feature') HEAD is now at abc1234 Commit message on feature branch
This lists files in the new worktree folder to confirm the branch files are checked out separately.
Terminal
ls ../feature-branch
Expected OutputExpected
README.md src .gitignore
Shows all active worktrees linked to your repository, so you can see where each branch is checked out.
Terminal
git worktree list
Expected OutputExpected
/home/user/myrepo abc1234 [main] /home/user/feature-branch abc1234 [feature]
Removes the worktree at ../feature-branch when you finish working on that branch, cleaning up the extra folder.
Terminal
git worktree remove ../feature-branch
Expected OutputExpected
Deleted worktree ../feature-branch
Key Concept

Git worktrees let you have multiple folders with different branches checked out, so you can work on them side by side without switching or losing changes.

Common Mistakes
Trying to create a worktree for a branch that does not exist yet.
Git cannot check out a branch that does not exist, so the command fails.
Create the branch first with 'git branch branch-name' or use 'git worktree add -b branch-name path origin/branch-name' to create and check out at once.
Deleting the worktree folder manually without using 'git worktree remove'.
Git still thinks the worktree exists and may cause errors or confusion.
Always remove worktrees using 'git worktree remove path' to keep Git's metadata clean.
Working inside the main repo folder on a branch that is checked out in a worktree.
This can cause conflicts or confusion because the same branch is checked out in two places.
Avoid checking out the same branch in multiple worktrees or the main repo folder at the same time.
Summary
Use 'git worktree add' to create a new folder with a different branch checked out for parallel work.
Check active worktrees with 'git worktree list' to see all your parallel branches.
Remove worktrees cleanly with 'git worktree remove' to avoid leftover folders and metadata.

Practice

(1/5)
1. What is the main benefit of using git worktree for parallel work?
easy
A. It deletes old branches to save space.
B. It automatically merges branches without conflicts.
C. It allows working on multiple branches simultaneously in separate folders.
D. It creates a backup of the entire repository.

Solution

  1. Step 1: Understand what git worktree does

    git worktree lets you check out multiple branches at once in different folders without cloning the repo multiple times.
  2. Step 2: Compare options with this feature

    Only It allows working on multiple branches simultaneously in separate folders. correctly describes this benefit. Other options describe unrelated or incorrect features.
  3. Final Answer:

    It allows working on multiple branches simultaneously in separate folders. -> Option C
  4. Quick Check:

    Parallel branch work = It allows working on multiple branches simultaneously in separate folders. [OK]
Hint: Worktrees = multiple branches in separate folders [OK]
Common Mistakes:
  • Thinking worktrees merge branches automatically
  • Confusing worktrees with backups
  • Assuming worktrees delete branches
2. Which command correctly creates a new worktree for branch feature in folder ../feature?
easy
A. git worktree create feature ../feature
B. git worktree add ../feature feature
C. git add worktree ../feature feature
D. git checkout worktree feature ../feature

Solution

  1. Step 1: Recall correct syntax for adding a worktree

    The correct syntax is git worktree add <path> <branch>.
  2. Step 2: Match options to syntax

    Only git worktree add ../feature feature matches this syntax exactly. Others use wrong commands or order.
  3. Final Answer:

    git worktree add ../feature feature -> Option B
  4. Quick Check:

    Correct add syntax = git worktree add ../feature feature [OK]
Hint: Use 'git worktree add <path> <branch>' to create worktree [OK]
Common Mistakes:
  • Using 'create' instead of 'add'
  • Mixing order of arguments
  • Using 'git add' or 'git checkout' incorrectly
3. Given these commands executed in a repo:
git worktree add ../feature feature
cd ../feature
git status

What will git status show in the ../feature folder?
medium
A. On branch master, with changes from master branch.
B. Error: not a git repository.
C. Detached HEAD state with no branch.
D. On branch feature, with changes from that branch.

Solution

  1. Step 1: Understand what git worktree add ../feature feature does

    This creates a new folder ../feature checked out to the feature branch.
  2. Step 2: Check git status in that folder

    Since the folder is a valid worktree on feature branch, git status shows branch feature and its changes.
  3. Final Answer:

    On branch feature, with changes from that branch. -> Option D
  4. Quick Check:

    Worktree folder branch = feature [OK]
Hint: Worktree folder tracks specified branch, not master [OK]
Common Mistakes:
  • Assuming worktree defaults to master branch
  • Thinking worktree folder is detached HEAD
  • Confusing worktree folder with unrelated repo
4. You ran git worktree add ../dev feature but got an error: fatal: 'feature' is not a commit and a branch 'feature' cannot be created from it. What is the likely cause?
medium
A. The branch 'feature' does not exist in the repo.
B. The folder '../dev' already contains a git repo.
C. You forgot to commit changes before adding worktree.
D. You used 'git worktree create' instead of 'add'.

Solution

  1. Step 1: Analyze the error message

    The error says 'feature' is not a commit and branch cannot be created, meaning the branch does not exist.
  2. Step 2: Match cause to options

    The branch 'feature' does not exist in the repo. matches this cause. Other options describe unrelated issues or wrong commands.
  3. Final Answer:

    The branch 'feature' does not exist in the repo. -> Option A
  4. Quick Check:

    Branch must exist before adding worktree [OK]
Hint: Check branch exists before adding worktree [OK]
Common Mistakes:
  • Assuming folder conflict causes this error
  • Thinking uncommitted changes block worktree add
  • Confusing 'add' with 'create' command
5. You want to work on two features in parallel without cloning the repo twice. You create two worktrees:
git worktree add ../feature1 feature1
git worktree add ../feature2 feature2

What is a key advantage of this approach compared to cloning twice?
hard
A. It saves disk space by sharing the same .git data.
B. It automatically syncs changes between branches.
C. It prevents any merge conflicts between branches.
D. It allows pushing both branches with one command.

Solution

  1. Step 1: Understand difference between worktrees and cloning

    Worktrees share the same repository data (.git) but have separate working folders, saving disk space.
  2. Step 2: Evaluate options

    It saves disk space by sharing the same .git data. correctly states the disk space saving. Other options describe features not provided by worktrees.
  3. Final Answer:

    It saves disk space by sharing the same .git data. -> Option A
  4. Quick Check:

    Worktrees share repo data, saving space [OK]
Hint: Worktrees share .git data, saving space vs cloning [OK]
Common Mistakes:
  • Thinking worktrees auto-sync branches
  • Assuming worktrees prevent merge conflicts
  • Believing one push updates multiple branches
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard