Branch

Problem

You want to develop a feature without immediately changing the stable version everyone else uses.

Solution — Branch

Create another line of development.
main:    A → B ─────→ E
              \
feature:       C → D
Changes can later be merged.
Core idea: branches allow independent lines of development within the same repository.