Primo. I'm skipping over the Git discussion. It is used by everyone, whether they like it or not. It's easy to use and scalable for large source code repositories.
The product irritates me to no end. As a result, I made the decision to write a Git tutorial. Strong foundations enable taller structures to be built.
Source control: decentralized vs. centralized
If you've used Visual SourceSafe, Mercurial, PVCS, or another centralized source control system, you're already familiar with it. In centralized source control, all developers communicate with a server. There are various files in a software project. To utilize a file, check it out. While the file is out, the centralized source control repository marks it as checked out. No other developer can overwrite it because it's checked out to you. You must check in your changes first; the changes of other developers are their headache. The other developer will have to merge with you. This works, but there are a couple of problems.
What happens if the main server goes down? The previous server snapshot can be used. You run into problems when you need to re-sync server modifications or check-in files. Local source control is not possible. Even using a coworker's source control as a remote upstream site isn't an option. What if you need source control for a large pet project on just your machine?
Take a look at the scale for a second. When employing centralized source control repositories, a small, close-knit team is anticipated. We're all part of enormous source control repositories in well-known open-source projects. With a centralized source control system that locks into a single location, large-scale repos and a detached working paradigm don't scale.
It's foggy in both places. Workarounds are a must for Visual SourceSafe fans. In a tiny boat, though, rowing to Japan is not a good idea. Source control is decentralized, as seen by the rest of the world.
centralized source control and Git are diametrically opposed. Decentralized source control allows for a large number of repositories. You can use servers, your own hard drive, or a coworker's. Multiple source control repositories can be linked to one another. Check-in and check-out will no longer be exclusive. They were replaced by merges and commits. Conflicts between mergers are unavoidable. Some of the suffering can be alleviated by using good coding patterns, architecture, and testing, but not all of it.