Before version control systems software developers did not have an efficient way to collaborate on their code. Software developers had a hectic time while trying to work on the same code at the same time. They improvised by mailing each other code for sharing, they stored their code on USB sticks and physical floppy disks as backups, they made sure to work in small teams and work in different parts of a system it was manageable for small projects but people needed large systems that could suit their needs. These challenges led to the need for a version control system that developers could effectively collaborate on code and keep backups of various versions of a project.
Birth of Git
Until April 2005 Linus Torvalds was using BitKeeper for version control of the Linux Kernel development. He had a large number of volunteer developers working on the Linux Kernel and their contributions had to be managed. BitKeeper was a nice tool for managing the enormous contribution by the developers. The Linux developers used the tool for free after an agreement between the two parties as BitKeeper was a proprietary source control management system which means you had to pay for the use of the tool. There came a conflict of interest after Andrew Tridgell created an open-source client for accessing the Bitkeeper version control system by reverse-engineering the BitKeeper protocols. This caused the copyright holder to withdrawal the free-to-use policy that they had earlier agreed upon. Many developers of the Linux kernel gave up access to the BitKeeper.
Linux knew he had to act fast to replace the version control system that he knew and loved so he took a working vacation to decide on what to do as the current free-to-use version control systems could not solve his problems at the time. The result of his vacation was the birth of a new version control system named Git.
He had some goals in mind on how to make the next version control system that could manage a large project like his own. He set out to build a version control system that was the complete opposite of Concurrent Versions System (CVS), which could support distributed Version Control system just like BitKeeper and one that Included very strong safeguards against corruption, either accidental or malicious. The initial development of Git began in 2005 on 3 April. On 6 April announcement of the project took place and became self-hosting the next day. Later on that year Linux Torvalds achieved its performance goal after a benchmark was performed and it managed the kernel 2.6.12 release. Since 2005 on 26 July maintenance was turned over to Junio Hamano who was a major contributor to the project (responsible for the 1.0 release ) and remains the project’s core maintainer.
Several other volunteer contributors were fully employed by the company to make improvements git such are Jeff King who started contributing while he was a student, Shawn Pearce opened up git to the android and java ecosystem with his work on JGit, and Johannes Schindelin for opening up git to the windows community on his work on git for windows. In late 2007 Preston-Werner teamed up with Chris Wanstrath, Scott Chacon, and P.J. Hyett to start developing GitHub after Tom Preston-Werner was introduced to Git by a coworker. He saw the need to offer source-code hosting based on git and a modern web interface. Today GitHub has more developers than its competitors. Google was the first adopter of git for their Linux-based operating system, Android in march 2009.
Git at the time was not considered able to manage such a huge project that consisted of many developers around the world to work on a single open-source project. so they built Repo which was not meant to replace git but to make it easier to use Git. Microsoft followed suit several years later though they were known to despise open-source tools. However there was a cultural shift at the company and they started embracing open source by contributing to libgit2, a library of Git development resources, to help speed up Git applications but the major boost to git popularity by Microsoft was 2017 when the entire development effort for the Microsoft windows suite of products moved to git which created the worlds largest git repository. Microsoft will later on June 2018 acquire GitHub for $7.5 billion in Microsoft stock. this took the development community by surprise as Microsoft before was known to be against open-source which made many developers suspicious and migrate to other platforms.
What is Git About?
- Git is a free and open-source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
- Git relies on the basis of distributed development of software where more than one developer may have access to the source code of a specific application and can modify changes to it that may be seen by other developers.
- Initially designed and developed by Linus Torvalds for Linux kernel development in 2005.
- Every git working directory is a full-fledged repository with complete history and full version tracking capabilities, independent of network access or a central server.
- Git allows a team of people to work together, all using the same files. And it helps the team cope up with the confusion that tends to happen when multiple people are editing the same files.
Characteristics of Git
- Strong support for non-linear development
- Distributed development
- Compatibility with existing systems/protocol
- Efficient handling of large projects
- Data Assurance
- Automatic Garbage Collection
- Periodic explicit object packing
For more details please refer to this article: An Introduction to Git
Future of Git
Today git and GitHub are taking over the world as many developers are adopting git and GitHub for version control. There are about 56 million developers according to statistics. Developers are really changing the world and Git and GitHub are part of the story. Software development has a bright future and I am thrilled to see what Microsoft is a software company that will do with GitHub in the coming years.
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses
are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!