monorepo), this enables automatic management branching and merging, speeds up most operations (except pushing and fetching), improves the ability to work offline, and does not rely on a single location for backups.
A distributed model is generally better suited for large projects with partly independent developers, such as the Linux Kernel.
It allows developers to work in independent branches and apply changes that can later be committed, audited and merged (or rejected)[9] by others.
This model allows for better flexibility and permits for the creation and adaptation of custom source code branches (forks) whose purpose might differ from the original project.
Such an approach enables developers to work in local and disconnected branches, making it more convenient for larger distributed teams.
This arrangement, however, can be difficult to maintain, resulting in many projects choosing to shift to a paradigm in which one contributor is the universal "upstream", a repository from whom changes are almost always pulled.
While distributed version control systems make it easy for new developers to "clone" a copy of any other contributor's repository, in a central model, new developers always clone the central repository to create identical local copies of the code base.