Branches are labels
New idea
Try something risky without breaking anything
Your site works. Now you want to try a bold new menu. If it goes wrong halfway, you don't want the working version broken while you figure it out.
You could copy the whole project folder. Git has a far cheaper trick, the branch.
A branch is not a copy. It's a label with a name, like main or new-menu, stuck on one commit. Git stores it as a tiny file holding that commit's id: a few dozen bytes, however big the project is.