Bird
Raised Fist0
Gitdevops~10 mins

Working in multiple branches simultaneously in Git - Step-by-Step Execution

Choose your learning style10 modes available
Process Flow - Working in multiple branches simultaneously
Start on branch main
↓
Create new branch feature
↓
Switch to feature branch
↓
Make changes on feature
↓
Commit changes on feature
↓
Switch back to main
↓
Make changes on main
↓
Commit changes on main
↓
Branches have separate changes
↓
Merge or switch as needed
This flow shows how you create and switch between branches to work on different tasks separately, committing changes independently.
Execution Sample
Git
git checkout -b feature
# Switch to new branch 'feature'
# Make changes and commit

git checkout main
# Switch back to 'main'
# Make changes and commit
This code creates a new branch, switches to it, commits changes, then switches back to main and commits other changes.
Process Table
StepCommandCurrent BranchActionResult
1git checkout -b featuremainCreate and switch to 'feature'Now on branch 'feature'
2edit filesfeatureMake changesWorking directory changed on 'feature'
3git commit -am 'feat: add feature'featureCommit changesCommit added on 'feature'
4git checkout mainfeatureSwitch to 'main'Now on branch 'main'
5edit filesmainMake changesWorking directory changed on 'main'
6git commit -am 'fix: update main'mainCommit changesCommit added on 'main'
7-mainBranches have separate historiesFeature and main have different commits
💡 Finished working on both branches with separate commits
Status Tracker
VariableStartAfter 1After 3After 4After 6Final
Current Branchmainfeaturefeaturemainmainmain
Feature Branch Commits001111
Main Branch Commits000011
Key Moments - 2 Insights
Why do changes on the 'feature' branch not appear when I switch back to 'main'?
Because each branch has its own separate commit history and working directory state, as shown in execution_table rows 3 and 4 where switching branches changes the current branch and working files.
Can I commit changes on one branch and then switch to another branch without losing those changes?
Yes, commits are saved per branch. The execution_table shows commits made on 'feature' (row 3) and then switching to 'main' (row 4) before making new commits (row 6).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 4, which branch is active after the command?
Afeature
Bmain
Cdetached HEAD
Dunknown
💡 Hint
Check the 'Current Branch' column at step 4 in execution_table
At which step does the first commit happen on the 'feature' branch?
AStep 2
BStep 3
CStep 5
DStep 6
💡 Hint
Look for 'Commit added on feature' in the 'Result' column of execution_table
If you made changes but did not commit on 'feature' and switched to 'main', what would happen?
AChanges stay on 'feature' and are not visible on 'main'
BChanges are lost
CChanges move automatically to 'main'
DGit prevents switching branches
💡 Hint
Git usually prevents switching branches if there are uncommitted changes that would be overwritten, not shown in execution_table but important to know
Concept Snapshot
Working with multiple branches means:
- Create a branch: git checkout -b branch_name
- Switch branches: git checkout branch_name
- Each branch has its own commits
- Changes on one branch do not affect others
- Commit changes before switching to avoid conflicts
Full Transcript
This visual execution shows how to work on multiple git branches at the same time. You start on the main branch, create a new branch called feature, and switch to it. Then you make changes and commit them on feature. Next, you switch back to main, make different changes, and commit there. Each branch keeps its own history and changes separate. This way, you can work on different tasks without mixing code. Remember to commit your changes before switching branches to avoid losing work.

Practice

(1/5)
1. What is the main purpose of working with multiple branches simultaneously in Git?
easy
A. To develop features independently without affecting the main code
B. To delete all previous commits
C. To merge all branches into one automatically
D. To speed up the internet connection

Solution

  1. Step 1: Understand branches in Git

    Branches allow you to work on different versions of your project independently.
  2. Step 2: Purpose of multiple branches

    Working on multiple branches lets you develop features or fixes without disturbing the main code.
  3. Final Answer:

    To develop features independently without affecting the main code -> Option A
  4. Quick Check:

    Branches isolate work = B [OK]
Hint: Branches isolate work so main code stays safe [OK]
Common Mistakes:
  • Thinking branches delete commits
  • Believing branches merge automatically
  • Confusing branches with internet speed
2. Which command correctly creates and switches to a new branch named feature in one step?
easy
A. git checkout feature
B. git switch -c feature
C. git create branch feature
D. git branch feature && git checkout feature

Solution

  1. Step 1: Identify command to create and switch branch

    The command git switch -c <branch> creates and switches to the branch in one step.
  2. Step 2: Check other options

    git checkout feature switches but does not create if branch doesn't exist. git branch feature && git checkout feature is two commands combined. git create branch feature is invalid syntax.
  3. Final Answer:

    git switch -c feature -> Option B
  4. Quick Check:

    Create and switch = git switch -c [OK]
Hint: Use 'git switch -c' to create and switch branch fast [OK]
Common Mistakes:
  • Using 'git checkout' without creating branch
  • Trying invalid commands like 'git create branch'
  • Combining commands incorrectly
3. Given the commands below, what will be the output of git branch?
git branch feature
git switch feature
git branch bugfix
git switch bugfix
git branch
medium
A. * bugfix feature main
B. * feature bugfix main
C. * main feature bugfix
D. * bugfix main feature

Solution

  1. Step 1: Track branch creation and switching

    Branches created: feature, bugfix. Switched last to bugfix, so bugfix is current.
  2. Step 2: Understand git branch output

    It lists all branches, marking current with '*'. Order is alphabetical by default: bugfix, feature, main.
  3. Final Answer:

    * bugfix feature main -> Option A
  4. Quick Check:

    Current branch marked * = C [OK]
Hint: Current branch shows *; branches listed alphabetically [OK]
Common Mistakes:
  • Assuming last created branch is current
  • Ignoring the * mark for current branch
  • Misordering branch list
4. You tried to switch to a branch named dev using git switch dev but got an error: error: pathspec 'dev' did not match any branch. What is the likely cause?
medium
A. The branch dev is already checked out
B. You are not inside a Git repository
C. You have uncommitted changes blocking the switch
D. The branch dev does not exist yet

Solution

  1. Step 1: Analyze the error message

    The error says the branch name was not found, meaning it does not exist locally.
  2. Step 2: Check other causes

    Not being in a repo gives a different error. Uncommitted changes usually warn differently. Already checked out branch won't error.
  3. Final Answer:

    The branch dev does not exist yet -> Option D
  4. Quick Check:

    Branch missing = error pathspec not matched [OK]
Hint: Error means branch missing locally, create it first [OK]
Common Mistakes:
  • Assuming uncommitted changes cause this error
  • Thinking you are outside a Git repo
  • Believing branch is already checked out
5. You want to work on two features at the same time: feature1 and feature2. You want to keep your changes separate but test both locally without switching branches repeatedly. Which Git tool helps you do this?
hard
A. Git merge to combine branches
B. Git stash to save changes temporarily
C. Git worktree to create multiple working directories
D. Git rebase to rewrite history

Solution

  1. Step 1: Understand the problem

    You want to work on two branches simultaneously without switching back and forth.
  2. Step 2: Identify the Git tool

    Git worktree allows multiple working directories linked to different branches, enabling simultaneous work.
  3. Step 3: Check other options

    Git stash saves changes temporarily but doesn't allow simultaneous workspaces. Merge and rebase change history or combine branches, not simultaneous work.
  4. Final Answer:

    Git worktree to create multiple working directories -> Option C
  5. Quick Check:

    Multiple workspaces = git worktree [OK]
Hint: Use git worktree for multiple branches open at once [OK]
Common Mistakes:
  • Using stash to try simultaneous work
  • Confusing merge with parallel work
  • Thinking rebase helps with multiple working copies
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