Local branches can be compared with other local branches and with _remote-tracking branches.
A remote-tracking branch proxies the state of a branch in another remote repository. If you are working in a certain branch, the creation of a new commit advances this pointer to the newly created commit. Successors are retrieved by traversing the commit graph starting from branches or other refs, symbolic references (for example: HEAD) or explicit commit objects.
which means that you can work on different versions of your collection of files.
A branch allows the user to switch between these versions so that he can work on different changes independently from each other.
One of the branches is the default (typically named _master uniquely identifies a new revision of the content of the repository.
This revision can be retrieved later, for example, if you want to see the source code of an older version.
This way a branch defines its own line of descendants in the overall version graph formed by all commits in the repository.
This is typically done via a repository running on a server which is, unlike the local machine of a developer, always online.
Git originates from the Linux kernel development and was founded in 2005 by Linus Torvalds.
Nowadays it is used by many popular open source projects, e.g., the Android or the Eclipse developer teams, as well as many commercial organizations.
In a localized version control systems it is the individual computer and in a centralized version control systems it is the server machine.
Both system makes it also harder to work in parallel on different features.