Understanding the importance of Git is crucial to your software development Process
Getting a software/application built has become as easy as opening a Gmail account. With millions of developers in almost every country, it’s easy to find the people you need to get your job done within the budget you desire. But one thing that’s guaranteed is that if you are to run your business efficiently, your software/application should also change with time and the time is running faster than ever.
Why am I talking about all of these? It’s simply because if you are planning to get an application built for your eCommerce business or for your company, then you need to know the basics of the development process.
I had already introduced you to the basics of DevOps with examples in my previous blog. This time, my inclination is towards letting you know how important Git is for your application since it enables any and every developer you hire to look at every stage from the beginning until they take over for further development.
In simple terms, Git is a software tool that we use to track the changes made to our software over time. It allows you to look back at the history of a software project and see what the code looked like 1 day, 1 year, or even 10 years in the past.
A fun fact; Git started in a bit of controversy as an act of revenge.
In 2002, the Linux community started to use the proprietary distributed version control system BitKeeper for free. But in 2005, the relationship between the Linux community and BitKeeper broke down when the free-use status was revoked. So Linus Torvalds, the creator of Linux, started to develop Git as an open-source product. That year, the first version of Git was released.
Reminds you of the Lamborghini scene, right? BTW, Git is the most popular version control system as of today.
But in order to understand Git, you need to know about two more things i.e Centralized Version Control System (CVCS) and Distributed Version Control System (DVCS).
A centralized version control system works on a client-server model. There is a single, (centralized) master copy of the code base, and pieces of the code that are being worked on are typically locked, (or “checked out”) so that only one developer is allowed to work on that part of the code at a time. Access to the code base and the locking is controlled by the server. When the developer checks their code back in, the lock is released so it’s available for others to check out.
Of course, an important part of any VCS is the ability to keep track of changes that are made to the code elements, and so when an element is checked in, a new version of that piece is created and logged. When everyone has finished working on their different pieces and it’s time to make a new release, a new version of the application is created, which usually just means logging the version numbers of all the individual parts that go together to make that version of the application.
More recently, there’s been a trend (or some might call it a revolution) toward distributed version control systems. These systems work on a peer-to-peer model: the code base is distributed amongst the individual developers’ computers. In fact, the entire history of the code is mirrored on each system.
There is still a master copy of the code base, but it’s kept on a client machine rather than a server. There is no locking of parts of the code; developers make changes in their local copy and then, once they’re ready to integrate their changes into the master copy, they issue a request to the owner of the master copy to merge their changes into the master copy.
With a DVCS, the emphasis switches from versions to changes, and so a new version of the code is simply a combination of a number of different sets of changes. That’s quite a fundamental change in the way many developers work, which is why DVCS’s are sometimes considered harder to understand than centralized systems.
Git is a piece of software that allows you to perform version control. Large software projects require some piece of software to keep track of all the different changes made to a codebase in order to track things like: Who edited a certain file; what they changed; and how to get back to the original code if necessary. Git does all of these things and more, so it’s not surprising that most large software companies use git
This is the basic diagram of Git Concept,