Bird
Raised Fist0
Gitdevops~5 mins

Why branches are essential in Git - Why It Works

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
Introduction
Branches let you work on different versions of your project at the same time. They help keep your main work safe while you try new ideas or fix problems.
When you want to add a new feature without affecting the main project.
When you need to fix a bug but don’t want to stop other work.
When you want to test changes before sharing them with your team.
When multiple people work on the same project and need separate spaces.
When you want to keep your main project stable and clean.
Commands
This command creates a new branch called 'feature-login' so you can work on the login feature separately.
Terminal
git branch feature-login
Expected OutputExpected
No output (command runs silently)
Switches your working area to the 'feature-login' branch to start working on it.
Terminal
git checkout feature-login
Expected OutputExpected
Switched to branch 'feature-login'
Shows the current branch and any changes you have made but not yet saved.
Terminal
git status
Expected OutputExpected
On branch feature-login nothing to commit, working tree clean
Switches back to the main branch when you want to work on or see the stable project version.
Terminal
git checkout main
Expected OutputExpected
Switched to branch 'main'
Combines the changes from 'feature-login' into the main branch after you finish your work.
Terminal
git merge feature-login
Expected OutputExpected
Updating abc1234..def5678 Fast-forward
Key Concept

If you remember nothing else from this pattern, remember: branches let you work safely on new ideas without breaking the main project.

Common Mistakes
Making changes directly on the main branch without using a branch.
This can cause problems if the changes have errors or break the project for others.
Always create and switch to a new branch before starting new work.
Forgetting to switch back to the main branch before merging.
Merging on the wrong branch can cause confusion and errors.
Use 'git checkout main' before running 'git merge' to combine changes.
Not checking the status before committing or merging.
You might miss uncommitted changes or conflicts.
Run 'git status' often to see your current branch and changes.
Summary
Create branches to work on new features or fixes separately.
Switch branches to move between different work versions.
Merge branches to combine finished work into the main project.

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