Bird
Raised Fist0
Gitdevops~20 mins

Tracking branches concept in Git - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Tracking Branch Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
What is a tracking branch in Git?

In Git, what does a tracking branch do?

AIt is a branch that stores all the commit history of the repository without any connection to remotes.
BIt is a branch that only exists on the remote repository and cannot be checked out locally.
CIt is a temporary branch created during a merge conflict resolution.
DIt is a local branch that automatically syncs with a remote branch, making it easier to pull and push changes.
Attempts:
2 left
💡 Hint

Think about how Git helps you keep your local work updated with changes from others.

💻 Command Output
intermediate
2:00remaining
Output of 'git branch -vv' showing tracking branches

What is the output of the command git branch -vv when you have a local branch feature tracking origin/feature with one commit ahead?

Git
git branch -vv
A* feature 123abc4 [origin/feature] Added new feature
B* feature 123abc4 Added new feature
C* feature 123abc4 [origin/feature: ahead 1] Added new feature
D* feature 123abc4 [origin/feature: behind 1] Added new feature
Attempts:
2 left
💡 Hint

Look for the branch name, commit hash, tracking info, and commit message.

🔀 Workflow
advanced
2:00remaining
Setting up a tracking branch for a new remote branch

You cloned a repository and want to start working on a new remote branch bugfix that was just created. Which command correctly sets up a local tracking branch bugfix to track origin/bugfix?

Agit checkout -b bugfix origin/bugfix
Bgit branch bugfix
Cgit checkout bugfix
Dgit fetch origin bugfix
Attempts:
2 left
💡 Hint

Think about how to create a local branch that tracks a remote branch in one step.

Troubleshoot
advanced
2:00remaining
Why does 'git pull' fail on a tracking branch?

You are on a local branch develop tracking origin/develop. Running git pull gives the error: There is no tracking information for the current branch. What is the most likely cause?

AThe local branch <code>develop</code> is not actually set to track <code>origin/develop</code>.
BThe remote repository <code>origin</code> is unreachable due to network issues.
CYou have uncommitted changes that prevent pulling.
DThe <code>git pull</code> command is deprecated and should be replaced with <code>git fetch</code>.
Attempts:
2 left
💡 Hint

Check if the branch has a remote branch linked.

Best Practice
expert
3:00remaining
Best practice for renaming a tracking branch

You want to rename your local tracking branch feature-old to feature-new while keeping the tracking relationship with origin/feature-old. Which sequence of commands achieves this correctly?

Agit branch -m feature-old feature-new && git push origin feature-new && git branch --set-upstream-to=origin/feature-new feature-new
Bgit branch -m feature-old feature-new && git branch --unset-upstream feature-new && git branch -u origin/feature-old feature-new
Cgit checkout feature-old && git branch -m feature-new && git push origin feature-new
Dgit branch -m feature-old feature-new && git push origin :feature-old feature-new
Attempts:
2 left
💡 Hint

Think about renaming locally and then updating the tracking info without pushing changes to remote branches.

Practice

(1/5)
1. What is the main purpose of a tracking branch in Git?
easy
A. To delete remote branches automatically
B. To create a backup of the repository
C. To link a local branch to a remote branch for easy syncing
D. To merge two unrelated branches

Solution

  1. Step 1: Understand tracking branch concept

    A tracking branch connects your local branch to a remote branch, making syncing easier.
  2. Step 2: Identify the main purpose

    This connection allows you to push and pull changes without extra typing.
  3. Final Answer:

    To link a local branch to a remote branch for easy syncing -> Option C
  4. Quick Check:

    Tracking branch = link local to remote [OK]
Hint: Tracking branches link local and remote branches automatically [OK]
Common Mistakes:
  • Thinking tracking branches delete remote branches
  • Confusing tracking branches with backups
  • Assuming tracking branches merge unrelated branches
2. Which Git command correctly creates a new local branch feature that tracks the remote branch origin/feature?
easy
A. git branch feature origin/feature
B. git checkout --track origin/feature feature
C. git checkout origin/feature feature
D. git branch --track feature origin/feature

Solution

  1. Step 1: Recall correct syntax for tracking branch creation

    The command to create a local branch tracking a remote branch is git branch --track local_branch remote_branch.
  2. Step 2: Match the command with options

    git branch --track feature origin/feature matches this syntax exactly: git branch --track feature origin/feature.
  3. Final Answer:

    git branch --track feature origin/feature -> Option D
  4. Quick Check:

    Use --track with git branch to link branches [OK]
Hint: Use 'git branch --track' to link local to remote branch [OK]
Common Mistakes:
  • Omitting --track option
  • Using git checkout with wrong argument order
  • Confusing branch creation with checkout syntax
3. Given the commands:
git checkout -b feature origin/feature
git branch -vv

What will the output show about the feature branch?
medium
A. feature branch tracks origin/feature with commit info
B. feature branch does not track any remote branch
C. feature branch is deleted
D. feature branch tracks origin/main

Solution

  1. Step 1: Understand the checkout command

    git checkout -b feature origin/feature creates a local branch feature starting at origin/feature and sets it to track that remote branch.
  2. Step 2: Interpret git branch -vv output

    This command shows local branches with tracking info and commit details. The feature branch will show it tracks origin/feature.
  3. Final Answer:

    feature branch tracks origin/feature with commit info -> Option A
  4. Quick Check:

    Checkout -b with remote sets tracking branch [OK]
Hint: Checkout -b with remote branch sets tracking automatically [OK]
Common Mistakes:
  • Assuming no tracking is set by checkout -b
  • Thinking branch is deleted after creation
  • Confusing tracking branch with origin/main
4. You ran git branch --track feature origin/feature but got an error: fatal: A branch named 'feature' already exists.
What is the best way to fix this?
medium
A. Delete the existing feature branch first or use checkout to switch
B. Rename the remote branch
C. Run git branch --force feature origin/feature
D. Use git push to update the remote branch

Solution

  1. Step 1: Understand the error message

    The error says a local branch named 'feature' already exists, so you cannot create it again.
  2. Step 2: Choose the correct fix

    You can either delete the existing branch if not needed or switch to it using git checkout feature. Renaming remote or forcing branch creation is incorrect here.
  3. Final Answer:

    Delete the existing feature branch first or use checkout to switch -> Option A
  4. Quick Check:

    Existing branch blocks creation; delete or switch [OK]
Hint: Existing branch blocks creation; delete or checkout instead [OK]
Common Mistakes:
  • Trying to rename remote branch unnecessarily
  • Using --force incorrectly with git branch
  • Confusing push with branch creation errors
5. You want to create a local branch dev that tracks origin/dev, but origin/dev does not exist yet. What happens if you run git checkout --track origin/dev?
hard
A. Git creates dev branch tracking origin/main instead
B. Git errors out because origin/dev does not exist
C. Git creates dev branch but does not track any remote
D. Git creates dev branch tracking origin/dev anyway

Solution

  1. Step 1: Understand tracking branch creation requirements

    To create a tracking branch, the remote branch must exist. If it doesn't, Git cannot link to it.
  2. Step 2: Predict Git behavior

    Running git checkout --track origin/dev when origin/dev does not exist causes Git to error out.
  3. Final Answer:

    Git errors out because origin/dev does not exist -> Option B
  4. Quick Check:

    Tracking branch requires existing remote branch [OK]
Hint: Remote branch must exist before tracking branch creation [OK]
Common Mistakes:
  • Assuming Git creates tracking branch without remote
  • Thinking Git tracks origin/main by default
  • Ignoring error messages about missing remote branch