Over the last couple months, I have been doing a lot more programming. In doing so, I have learned the importance of Version Control (Reversion Control or Source Control). So, why is this so important?
You have back-ups from before you messed up/jacked up your application!!! To grasp these concepts, I put the below post together. A lot of this is inspired by Kalid Azad’s post A Visual Guide to Version Control.
You always have some sort of Version Control. Some are just better than others.
You just might have not known it. We create new copies of the same file to show different stages of the document/photos changes. That was the point of using “Save As”. Most folders end up with files like this.
While using this system for documentation is fine. Maintaining the number of files needed for a basic Web Application, let alone a large program it will not work.
I can not imagine the developers of Angry Birds with multiple shared folders named “Angry Birds – 01012012 -New Version”. A project of this scale would have a large number of programmers that would need to access to the same files. With a sub-par naming conventions and multiple hands in the pot, this will lead to disastrous outcomes.
A good Version Control System(VCS) that is able to do the following:
Personally, I use Git for my Version Control, and hosting all my code on GitHub. This helps me to manage a C# applicaiton on Azure or a Laravel site on SiteGround. Also, i am able to host this site through the use of Jekyll and GitHub Pages.
Joseph adds a file javascript file (control.js
) to the repository. He checks it out, makes a change (a really cool thing that makes it work so much better), and checks it back in with a commit message (“Added required item. COMPLETED TASK!”). The next morning, his co-worker updates her local copy and sees the latest revision of contoller.js
. She can browse the history or diff to see that Joseph added “a new feature” the day before and she is in sync and does not miss Joseph’s really cool thing.
As you can see Version Control is the best and simplest solution for managing changes in a coding environment. There are a robust amount of features and options that Version Control can provide. For more detailed information, dive into A Visual Guide to Version Control.