Branch
A branch is basically a pointer to a snapshot of your code so you can experiment with it without affecting the main codebase. It isn't a full copy because repos with multiple branches could get huge. Then you can merge your changes to the main codebase. It's like a sandbox.
Read More