What’s version control?
Version control, also known as source control, is the practice of tracking and managing changes to software code. Version control systems are software tools that help software teams manage changes to source code over time. Atlassian
A brief history of
Git is the most widely used version control software.
Git is complex and with complexity comes power and efficiency.
Git was invented as better alternative to Mercurial and CVS. Git was initially released in 2005 and has since grown in adoption.
Most distributed version control systems are
git-based and use git under the hood to provide the power of
Git among other powerful features. Github, Bitbucket and Gitlab are the most common
Git-based distributed version control systems.
Benefits of using Version control
1. Efficiently track changes
Tracking changes in source and related non-source files becomes easier with version control.
.rars for projects. Version control software like
Git offers a feature known as
Branching enables one to create a “
branch”, which is a snapshot of the current “
main” branch containing all the most recent versions of the source at that point of time, which they can make changes independent of the main branch and later “merge” the changes.
Each change is known as a
commit, identified by a unique(meaningful message), each commit is uniquely identified by a unique
2. Efficient teamwork and collaboration
Git-based platforms take the benefits of version control a notch higher, by:
- Providing distributed, asynchronous collaboration
- Issue tracking with third-party tools such as Jira
- Providing mechanisms of version releases
- Providing CI/CD integrations
- Team code review for incoming changes from collaborators On these platforms, one can add a collaborator to their project, where they can start contributing and participating right away(no sending of zips back and forth)
3. Project management
Project management becomes more efficient, with the integration of tools such as Github Desktop and Git Kraken(commercial), working on a project both at the individual and team level becomes efficient as these tools provide
Git functionalities in a user-friendly manner, allowing a user to focus on version control and less about the inner workings of
Git. More like not needing to know the theory of combustion and car engines to drive a car.
4. Better source distribution
Remember the FTP days? You had to log in to a server to upload changes using an FTP client like
FileZilla to upload the most recent changes to a web app, an API?
Git offers integration with remote
Git-based platforms mentioned above to make deployment and distribution sources easier. One of the ways of achieving this is through setting up
CI/CID pipelines with deploy tasks. One can set up a task that does a deployment on any qualifying changes to the
5. Backing up source and related non-source files
This comes last in the list because it’s less beneficial to look at
Git and any
Git-based platform primarily as a “backup” tool. Git offers a lot more if used correctly, for a large project, it’s easier to see who made changes, when they made the changes and how they did the changes. Use as a “backup” tool would mean looking at changes “dumped” with meaningless messages three years ago.
One under-estimates the power of
Gitand related tooling until they have to work on a project with no version control. That’s a lot o' pain, a lot o' pain.
Version control (with
Git) has become a lot more like English, you don’t have to speak it fluently but at least learn how to use it efficiently. Start using
Git and focus on writing code and collaborating.
Git is so widely adopted that it has in recent years become part of job requirements for most Software Engineering roles.
Found this article useful? Read more about crafting meaningful git commit messages