Linux is an open source software platform. The base kernel is maintained by volunteers essentially. They upload to the main repository any changes and improvements they think are worthwhile.
Since the Linux kernel is available to anyone, they are free to download it, modify it, even maintain their own repository with their own set of regular volunteers. A branch would be a difference in the files that serve some other purpose or solve some problem that isn't necessary in the main branch.
Now the kernel is just the core of Linux, there are whole operating systems built on top of that, they have their own repositories and branches.