I understand it's perplexing coming from svn. The concept of a 'branch' doesn't even exist in subversion (a a branch is just a plain directory that developers agree to see as a branch, but not a separate concept from svn POV). If people use git rationally, they (each one of them) will have at least a repo of the project on their own computers. Assuming that they all cloned from a "central" repo that has the branch "master" (not mandatory, but let's assume), then people will probably end up with a local "master" branch (that started from origin/master... this is a new concept from subversion: origin is a remote for a local repository. A remote is just another repo... a local repo can relate to many different remotes, and each one is synced/tracked on your local repo when you fetch/pull).
Here's another major difference from subversion: let's assume developers start working on their master. At this point, they are diverging. But how so if they are all working on "master"? A fair question. Sure, on "master"... but it's their master (like, each repo has a master branch) and they are working (committing) independently.
After a while, they will want to "merge" what they did into a common branch, right? There are maaaaaaany workflows to get this done:
- using a central repo wheere everybody commits onto a single branch, a-la-svn, say
- using a central repository where people will commit using a separate branch each
- Developers publishing stuff on their own repos (with git daemon, say) so other developers can pull from them without a central repo
That part is veeeery flexible.... well, I think all parts are veeeery flexible with git. https://www.atlassian.com/git/tutorials/comparing-workflows