Want to try a bold idea without risking the version everyone's using? Take a side path. That's a branch.
Picture a garden path that splits in two around a flowerbed and joins up again further on. You can wander down the side path, look at the roses, maybe find a nicer route. The main path is still there, untouched. If the side path turns out better, you can make it part of the main way through.
In Git, a branch is that side path: a separate line of work that starts as a copy of the project, where you can make changes without affecting the main version.
How teams use them
- Start a branch for one change, like a new page or a fix.
- Save your work on it as commits.
- Ask others to check it. On GitHub, that’s called a pull request.
- When it’s ready, merge it: join it back into the main version.
Meanwhile, colleagues can each have their own branches. Nobody trips over anyone else.
The main branch
Every project has one branch that counts as the real version, usually called main. The live website or app is normally built from it. Everything else is a side path until it’s merged in.
What it isn’t
It isn’t a backup. Most branches are joined back in or deleted once the work is done.
It isn’t a separate copy of the whole project either. Branches live inside the same project’s history. Making your own full copy of someone else’s project is a different thing, called a fork.
Where the comparison breaks down
Garden paths join up without any fuss. Branches sometimes don’t. If two branches changed the same lines in different ways, a person has to decide which version wins. That’s called a merge conflict.
How the words fit together
A branch is a separate line of commits. A pull request asks others to check it. Merging joins it back into main. Git keeps track of all of it.
Branches are quick and cheap to make. Many teams start a new branch for every change, however small, then join it back once someone has checked it.

When you'll hear it
“I'll do it on a branch.” I'll try it separately, so the main version stays safe until it's ready.
“Merge it into main.” Join the finished branch back into the main version.
“There's a merge conflict.” Two branches changed the same lines differently, so someone has to choose which to keep.
“Can we try this on a branch first, so the live version isn't affected?”

Try it yourselfReady to use it? The exact commands are on my other site, devcmds: Create a branch and switch to it ↗


