Software developers did not have a streamlined way to work together on projects before the advent of version control systems. Chaos broke out when several programmers tried to change the same piece of code at the same time. It was manageable for small projects, but people needed large systems that could accommodate their needs, so they improvised by mailing each other code for sharing, storing their code on USB sticks and physical floppy disks as backups, and making sure to work in small teams and in different parts of a system. Because of these problems, a version control system was made to make it easier for programmers to work together on code and keep safe copies of their projects from earlier versions.
Linus Torvalds used BitKeeper as the Linux Kernel’s version control system up to April 2005. He had to organize the work of a lot of people who worked on the Linux kernel for free. We found BitKeeper to be a useful tool for keeping track of the massive amount of work put in by programmers. BitKeeper was a proprietary source control management system, meaning you had to pay to use it. However, the Linux developers were able to use it for free after coming to an arrangement with the company. Andrew Tridgell figured out how the BitKeeper protocols worked and then made them available to the public as an open-source client. This led to a conflict of interest. Because of this, the owner of the copyright took back what they had said before about not needing permission. Many Linux kernel developers abandoned their attempts to access BitKeeper.
Linus realized he needed to make a quick decision about how to replace his preferred version control system, so he took a working vacation to consider his options. At the time, Linus’s needs were greater than what the free version control systems could handle. Git, a new version control system, was born while he was away on vacation.
In his mind, the future version control system should be able to handle a massive project like his own, therefore, he set some goals for its design. He set out to design the antithesis of CVS: a system that could work with distributed VCS tools like BitKeeper and that had rigorous protections against accidental or intentional data loss or alteration. On April 3, 2005, the first commits were made to what would become Git. The project was announced on April 6 and went live with independent hosting the following day. Eventually that year, following a benchmark, Linus reached its performance target and released kernel 2.6.12. On July 26, 2005, a key contributor and core maintainer, Junio Hamano, took over the reins of the project and has been responsible for its upkeep ever since (he was also responsible for the 1.0 release).