Unlike Centralized Version Control Systems (CVCSs), the distributed nature of Git allows you to be far more flexible in how developers collaborate on projects. In centralized systems, every developer is a node working more or less equally on a central hub. In Git, however, every developer is potentially both a node and a hub – that is, every developer can both contribute code to other repositories and maintain a public repository on which others can base their work and which they can contribute to.
As you can see with Centralized Version Control Systems, all source code is kept in one repository server. If this central server has a problem connection, all developer will not keep working with code. And if repo server is lost data, all died.
But with distributed strategy, each client will be a node and has an snapshot of repository. Each client can work independently even when central repo server has a problem. And because the data is not only centralized , data will be safe and recovery if we need.
Beside that, Git give us a very flexible of workflow :
– Centralized Workflow (Normal flow)
– Integration-Manager Workflow (Multi-repository of contributed flow like Open Source Project)
– Dictator and Lieutenants Workflow (Multi-repository workflow for huge of developers and features)