The CVS and SVN that Linus has always hatedCentralized Version Control SystemWhile git isDistributed version control systemWhat is the difference between a centralized version control system and a distributed version control system?
Let's talk about the centralized version control system. The version libraries are centrally stored on the central server. When working, they all use their own computers. Therefore, we must first obtain the latest version from the central server, then I started to work, finished my work, and pushed my work to the central server. The central server is like a library. If you want to change a book, you must first borrow it from the library, then go home and change it. After the change, you can put it back to the library.
The biggest problem with a centralized version control system is that it must be connected to the Internet to work. If the LAN is good, the bandwidth is large enough and the speed is fast enough, but if the network speed is slow on the internet, it may take five minutes to submit a 10 M file, which cannot throw people to death.
What is the difference between the distributed version control system and the centralized version control system? First of all, the distributed version control system does not have a "central server" at all, and each user's computer is a complete version library. In this way, you do not need to connect to the Internet when working, because the version library is on your computer. Since each person has a complete version library on his/her computer, how can many people collaborate? For example, if you change file a on your computer and your colleague changes file a on his computer, you only need to push the changes to the other party, then you can see the other party's changes.
Compared with the centralized version control system, the distributed version control system is much more secure, because each computer has a complete version library, and it doesn't matter if a person's computer breaks down, copy one from another person. If a problem occurs on the central server of the centralized version control system, no one can work.
In actual use of the distributed version control system, the modification of the version library is rarely pushed on the computers between the two, because the two of you may not be in the same LAN, and the two computers cannot access each other, or your colleague may be ill today, and his computer is not turned on. Therefore, a distributed version control system usually has a computer that acts as a "central server". However, this server serves only to facilitate the "Exchange" of changes, and everyone can do the same without it, it is not convenient to modify the exchange.
Of course, the advantage of git is not just that it does not have to be connected to the Internet. We will also see git's extremely powerful branch management, leaving SVN and so on far behind.
As the earliest open-source and free centralized version control system, CVS has been used by many people until now. Due to CVS's own design problems, the submitted files may be incomplete, and the version library may be inexplicably damaged. The same open-source and free SVN fixes some stability issues of CVs, and is currently the most widely used centralized version library control system.
In addition to free, there are also paid centralized version control systems, such as IBM's clearcase (which was previously acquired by IBM Rational), which features a larger installation than windows, it is slower to run than snail mail. The world's top 500 users can use clearcase. They share a common characteristic of being rich or stupid.
Microsoft also has a centralized version control system named VSS, which is integrated in Visual Studio. Because of its anti-human design, Microsoft is even embarrassed to use it.
In addition to git and bitkeeper, the distributed version control system also has Git-like mercurial and bazaar. These distributed version control systems have their own characteristics, but git is the fastest, simplest, and most popular!
Centralized vs distributed