just add to the very good answers already here.
The concept of "server" is confused when it comes to git. We like to think that there is some central point where everything "lives", in our technical life we believe that the server is for this. We find this idea comfortable (right or wrong)
Being a distributed system, each cloned copy of git -ball is technically a repository.
This suggests that it is still a very good idea to have some “central” management point for your repository.
Bitbucket or github, or even your own inbox somewhere, can act as the "main" repository.
The professional use of git is usually organized with the help of a “master” repo, on a bitpack that is writable only by pull request . Team members will fork the repository, do their work, and then, going to their own repository, issue a transfer request to the master repository. Then, peer-to-peer code review and successful download requests combined into the main repository can take place.
This contributes to a lot of good practice, and also means that you have a good clean repository that is backed up on some elses service.
We (in my organization) probably have more than 100 projects working this way, in many languages and working very well.
There are several workflows that use this as a basis. Look here for a reasonable explanation.
source share