Bird
Raised Fist0
Gitdevops~20 mins

Why branches are essential in Git - Challenge Your Understanding

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
🎖️
Branch Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Why use branches in Git?

Why are branches important when working with Git?

AThey allow multiple people to work on different features without affecting the main code.
BThey automatically fix merge conflicts without user input.
CThey delete the main code to create a new project.
DThey prevent any changes from being saved in the repository.
Attempts:
2 left
💡 Hint

Think about how teams work on different tasks at the same time.

💻 Command Output
intermediate
1:30remaining
Output of creating and switching branches

What is the output of running these commands in order?

git branch feature1
git checkout feature1
git branch
A
* feature1
  main
B
  feature1
* main
Cerror: branch 'feature1' already exists
D
* main
  feature1
Attempts:
2 left
💡 Hint

The asterisk (*) shows the current branch.

🔀 Workflow
advanced
2:00remaining
Correct order to create and merge a feature branch

What is the correct order of commands to create a feature branch, work on it, and merge it back to main?

A2,3,1,4,5
B1,2,3,4,5
C1,4,2,3,5
D4,1,2,3,5
Attempts:
2 left
💡 Hint

Create branch first, then add and commit changes, switch back to main, then merge.

Troubleshoot
advanced
2:00remaining
Resolving a merge conflict

You try to merge a feature branch into main but get a conflict. What should you do next?

APush the feature branch without resolving conflicts.
BDelete the main branch and recreate it.
CRun 'git merge --abort' and ignore the conflict.
DOpen the conflicting files, fix the conflicts manually, then add and commit the changes.
Attempts:
2 left
💡 Hint

Conflicts need manual fixing before completing the merge.

Best Practice
expert
2:00remaining
Why keep branches short-lived?

Why is it best practice to keep feature branches short-lived in Git?

AShort-lived branches make the repository size smaller.
BShort-lived branches automatically delete themselves after one day.
CShort-lived branches reduce merge conflicts and keep the project organized.
DShort-lived branches prevent anyone else from pushing code.
Attempts:
2 left
💡 Hint

Think about how long branches stay separate and how that affects merging.

Practice

(1/5)
1. Why are branches important in Git?
git branch feature creates a new branch. What is the main reason to use branches?
easy
A. To work on new features without affecting the main code
B. To delete files from the project
C. To speed up the computer
D. To permanently remove old versions

Solution

  1. Step 1: Understand what branches do

    Branches let you create a separate copy of the project to work on changes safely.
  2. Step 2: Identify the main purpose of branches

    Branches help keep new work separate so the main project stays stable.
  3. Final Answer:

    To work on new features without affecting the main code -> Option A
  4. Quick Check:

    Branches isolate work = A [OK]
Hint: Branches isolate new work from main code [OK]
Common Mistakes:
  • Thinking branches delete files
  • Believing branches speed up the computer
  • Confusing branches with deleting old versions
2. Which Git command correctly creates a new branch named dev?
easy
A. git create branch dev
B. git branch dev
C. git new dev
D. git start branch dev

Solution

  1. Step 1: Recall Git branch creation syntax

    The correct command to create a branch is git branch branch_name.
  2. Step 2: Match the command with options

    Only git branch dev matches the correct syntax.
  3. Final Answer:

    git branch dev -> Option B
  4. Quick Check:

    Correct branch command = C [OK]
Hint: Use 'git branch <branch_name>' to create branches [OK]
Common Mistakes:
  • Using 'git create branch' which is invalid
  • Trying 'git new' which is not a Git command
  • Using 'git start branch' which does not exist
3. What will be the output of the following commands?
git branch
git checkout -b feature1
git branch
medium
A. * master\n feature1
B. feature1\n* master
C. * feature1\n master
D. master\n* feature1

Solution

  1. Step 1: Understand initial branch list

    First git branch shows * master (assuming on master).
  2. Step 2: Analyze git checkout -b feature1

    This creates and switches to feature1 branch, so next git branch shows * feature1 as current.
  3. Step 3: Check output order

    Branches are listed in the order they were created, so master then feature1. The star (*) marks current branch.
  4. Final Answer:

    master\n* feature1 -> Option D
  5. Quick Check:

    Current branch marked * = B [OK]
Hint: Star (*) marks current branch in 'git branch' output [OK]
Common Mistakes:
  • Confusing which branch is current
  • Mixing order of branches in output
  • Ignoring the star (*) symbol
4. You ran git checkout feature but got an error: error: pathspec 'feature' did not match any file(s) known to git. What is the likely problem?
medium
A. The branch 'feature' does not exist yet
B. You have uncommitted changes blocking checkout
C. You typed the command in the wrong folder
D. Git is not installed properly

Solution

  1. Step 1: Understand the error message

    The error says the branch name 'feature' is unknown to Git, meaning it does not exist.
  2. Step 2: Identify the cause

    Trying to checkout a branch that was never created causes this error.
  3. Final Answer:

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

    Unknown branch error = D [OK]
Hint: Check if branch exists before checkout [OK]
Common Mistakes:
  • Assuming uncommitted changes cause this error
  • Thinking Git installation is broken
  • Ignoring the branch name spelling
5. You want to add a new feature without disturbing the main project. Which sequence of commands correctly uses branches to do this safely?
hard
A. git merge new-feature
git branch new-feature
make changes
git commit -m 'Add feature'
B. git checkout main
make changes
git commit -m 'Add feature'
git branch new-feature
git merge main
C. git branch new-feature
git checkout new-feature
make changes
git commit -m 'Add feature'
git checkout main
git merge new-feature
D. git commit -m 'Add feature'
git branch new-feature
git checkout new-feature
git merge main

Solution

  1. Step 1: Create and switch to a new branch

    Use git branch new-feature then git checkout new-feature to isolate work.
  2. Step 2: Make changes and commit on new branch

    Make your changes and commit them safely on new-feature.
  3. Step 3: Switch back and merge changes

    Switch to main and merge new-feature to add the feature safely.
  4. Final Answer:

    git branch new-feature
    git checkout new-feature
    make changes
    git commit -m 'Add feature'
    git checkout main
    git merge new-feature
    -> Option C
  5. Quick Check:

    Branch, commit, merge sequence = A [OK]
Hint: Create branch, commit changes, then merge back [OK]
Common Mistakes:
  • Committing on main before branching
  • Merging before making changes
  • Switching branches in wrong order