In a collaborative environment, it is common for several developers to share and work on the same source code. While some developers will fix bugs, others will implement new features, etc. With so much going on, there needs to be a system in place for managing different versions of the same code base.
Branching allows developers to branch out from the original code base and isolate their work from others. It also helps Git to merge versions later on easily.