While centralized systems were the version control system of choice for nearly a decade, Git has surpassed them in recent years.
Unlike SVN, Git utilizes multiple repositories: a central repository and a series of local repositories. Local repositories are exact copies of the central repository complete with the entire history of changes.
The Git workflow is similar to SVN, but with an extra step: to create a new feature, you take an exact copy of the central repository to create your local repository on your local machine (you can think of this as your “local trunk”). Then you work on your local repository exactly as you would in SVN by creating new branches, tags, etc. When you’re done, you merge your branches into your local repository (i.e. local trunk). When you’re ready to merge into the central repository, you push your changes from your local repository to the central repository.
It’s faster to commit. Because you commit to the central repository more often in SVN, network traffic slows everyone down. Whereas with Git, you’re working mostly on your local repository and only committing to the central repository every so often.
No more single point of failure. With SVN, if the central repository goes down or some code breaks the build, no other developers can commit their code until the repository is fixed. With Git, each developer has their own repository, so it doesn’t matter if the central repository is broken. Developers can continue to commit code locally until the central repository has been fixed, and then they can push their changes.
It’s available offline. Unlike SVN, Git can work offline, allowing your team to continue working without losing features if they lose connection.
Teams also opt for Git because it’s open source and cross-platform. That means that support is available for all platforms, multiple sets of technologies, languages, and frameworks. And it’s supported by virtually all operating systems.