With git there doesn't need to be a central server. Many people/orgs use one (e.g. github) because that pattern is very well understood and most developers are used to it. There is no reason that you can't push branches/commits between individual clones (in this context called remotes). Origin is one remote, but you can set up any other clone to be a remote as well.