The purpose of branching
A branch in a version control system is an active parallel line of development (also called a codeline). They are used to isolate, separate, and gather different types of work. For example, branches can be used to prevent your current unfinished work on a feature in progress from interfering with the management of bug fixes (isolation), or to gather fixes for an older version of the developed software (gathering and integration).
A single Git repository can have an arbitrarily large number of branches. Moreover, with a distributed version control system, such as Git, there could be many repositories for a single project (known as forks or clones), some public and some private; each such repository will have their own local branches. This can be considered source branching. Each developer would have at least one private clone of the project’s public repository to work in.
A bit of history – a note on the evolution of branch management
...