A branch is a git pointer that allows you switch between different versions of your code. It allows for making changes independently from your other changes ... this was what I got from the vogella tutorial and I was still lost ish.
Found this https://www.atlassian.com/git/tutorials/using-branches
A branch represents an independent line of development. Branches serve as an abstraction for the edit/stage/commit process. You can think of them as a way to request a brand new working directory, staging area, and project history. New commits are recorded in the history for the current branch, which results in a fork in the history of the project.