Bird
Raised Fist0
Gitdevops~10 mins

Creating a worktree in Git - Visual Walkthrough

Choose your learning style10 modes available
Process Flow - Creating a worktree
Start in main repo
↓
Run git worktree add <path> <branch>
↓
Git creates new directory at <path>
↓
New worktree linked to main repo
↓
Switch to new worktree directory
↓
Work independently on <branch>
↓
Commit, push, or switch back anytime
This flow shows how git creates a new linked working directory (worktree) for a branch, allowing parallel work.
Execution Sample
Git
git worktree add ../feature-branch feature
cd ../feature-branch
git status
Creates a new worktree for 'feature' branch outside main repo and checks its status.
Process Table
StepCommandActionResult
1git worktree add ../feature-branch featureCreate new worktree directory and link branchDirectory '../feature-branch' created with 'feature' branch checked out
2cd ../feature-branchChange directory to new worktreeCurrent directory is '../feature-branch'
3git statusCheck git status in new worktreeShows branch 'feature' and clean working tree
4exitEnd of demonstrationWorktree ready for independent work
💡 Worktree created and ready; user can work independently on 'feature' branch
Status Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
Current Directory/main-repo/main-repo../feature-branch../feature-branch../feature-branch
Branches Linkedmain branch onlymain + feature (worktree)main + feature (worktree)main + feature (worktree)main + feature (worktree)
Git StatusOn main branchOn feature branch (new worktree)On feature branch (new worktree)On feature branch (new worktree)On feature branch (new worktree)
Key Moments - 3 Insights
Why does git create a new directory when adding a worktree?
Because each worktree is a separate folder with its own checked-out branch, as shown in execution_table step 1 where '../feature-branch' is created.
Can I work on the new branch without affecting the main repo?
Yes, the new worktree is independent but linked, so changes in the new directory do not affect the main repo until you commit and push, as seen in step 3 git status.
What happens if I switch directories without creating a worktree?
You would be in the same repo and branch, not independent. The worktree command creates a separate directory for parallel work, shown in step 2.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the result of step 1?
ADirectory '../feature-branch' created with 'feature' branch checked out
BChanged directory to '../feature-branch'
CGit status shows main branch
DWorktree removed
💡 Hint
Check the 'Result' column in step 1 of the execution_table
At which step does the current directory change to the new worktree?
AStep 1
BStep 2
CStep 3
DStep 4
💡 Hint
Look at the 'Action' column for directory changes in execution_table
If you skip 'git worktree add' and just change directory, what would happen?
AYou get a new independent worktree
BGit creates a new branch automatically
CYou stay in the main repo without a new worktree
DGit deletes the main repo
💡 Hint
Refer to key_moments question 3 about directory switching without worktree creation
Concept Snapshot
git worktree add <path> <branch>
Creates a new linked working directory for <branch> at <path>.
Allows working on multiple branches simultaneously.
Each worktree is independent but shares repo data.
Switch directories to work in different branches.
Use git worktree list to see all worktrees.
Full Transcript
Creating a git worktree means making a new folder linked to your main repository where you can work on a different branch independently. You run 'git worktree add' with a path and branch name. Git then creates that folder and checks out the branch there. You can switch to that folder and work as usual without affecting your main repo folder. This lets you work on multiple branches at once without switching branches in the same folder. The execution steps show creating the worktree, changing directory, and checking status. Variables like current directory and branch status update accordingly. Common confusions include why a new folder is needed and how worktrees keep work separate but linked. The quiz checks understanding of these steps and effects. Remember, worktrees help you multitask in git safely and easily.

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

  1. Step 1: Understand what a worktree is

    A Git worktree allows you to have multiple working directories linked to the same repository.
  2. Step 2: Identify the main use case

    This lets you work on different branches at the same time without switching branches in one folder.
  3. Final Answer:

    To work on multiple branches simultaneously in separate folders -> Option A
  4. Quick Check:

    Worktree = multiple branches, multiple folders [OK]
Hint: Worktrees = multiple branches open in separate folders [OK]
Common Mistakes:
  • Thinking worktree merges branches
  • Confusing worktree with branch deletion
  • Believing worktree compresses repo
2. Which of the following is the correct syntax to create a new worktree for branch feature in folder ../feature-folder?
easy
A. git worktree add ../feature-folder feature
B. git worktree create feature ../feature-folder
C. git add worktree feature ../feature-folder
D. git worktree new ../feature-folder feature

Solution

  1. Step 1: Recall the correct command structure

    The command to add a worktree is git worktree add <path> <branch>.
  2. Step 2: Match the syntax with options

    git worktree add ../feature-folder feature matches the correct syntax exactly.
  3. Final Answer:

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

    git worktree add path branch = correct syntax [OK]
Hint: Remember: 'git worktree add path branch' is correct syntax [OK]
Common Mistakes:
  • Using 'create' instead of 'add'
  • Swapping branch and path order
  • Using 'git add worktree' which is invalid
3. Given the commands:
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

  1. Step 1: Understand what 'git worktree add' does

    This command creates a new folder with the specified branch checked out.
  2. Step 2: Check current branch in new worktree

    After changing directory, git branch --show-current shows the branch name checked out, which is 'test'.
  3. Final Answer:

    test -> Option C
  4. 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

  1. 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.
  2. Step 2: Understand the result

    This means the worktree is not on any branch but on a specific commit.
  3. Final Answer:

    Git creates a detached HEAD worktree at the current commit -> Option D
  4. 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

  1. Step 1: Create the branch before adding worktree

    You must create the branch 'feature' first because it does not exist yet.
  2. Step 2: Add the worktree for the new branch and switch directory

    Then add the worktree pointing to 'feature' and change to that folder.
  3. Final Answer:

    git branch feature git worktree add ../feature feature cd ../feature -> Option B
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard