My name is Mason Ellwood, and I’m currently working on Flatiron School’s Online Full Stack Web Development Program. Each week, I’ll be writing about my experience, what I’m learning, and tips on learning to code.
Today I would like to touch on one of the most widely used tool, and in my opinion one of the the most important tools in development I have came across, Version Control, GIT, and GIThub.
“The past is never where you think you left it” – Katherine Anne Porter
When I first started using GIT and GitHub I really had no idea how to use the thing, other than I had to know to use it. I did not understand the necessity of storing a repo for my code, and for a lot of the implementation processes I had done in the past, it seemed mundane. Until a few years ago something happened. My computer crashed…..
There went all the code I had been working on, all the images, templates, everything. Poof. So I did what any sane person would do in the early 2000’s. I spent way too much money on portable hard drives. I bought two 512GB portable hard drives. And BAM my problem was solved. On these I could hold everything, images, code, movies, you name it. And it was safe in my drawer at home.
But like every great Disney movie, one day, for no apparent reason at all, everything decides to take a turn for the worse. My hard drive decided to stop working. SO BACK TO SQUARE ONE!
Through these poor experiences, i have begun my hunt for alternative sources to backup and save my data. This is where I fell in love with GIThub. Though this tool, I was able to read, write, and save code online in a public or private repo which was accessible and writable from anywhere. Version control has allowed to me better understand my own code, and comment what I did and why I did something better and faster than any other method I have found.
Version control is the process of storing multiple versions of a single project, allowing each version to be recalled at a later date. This is useful because it allows you to easily rollback to a previous version of your application, saving you extensive time and extra work. It is also useful for testing and implementing new versions you may have written without messing up for original database.
So there are two types of version control. The first is local version control. This stores all the information locally on your machine. This is great for personal projects, but not so great if you want to collaborate with a team; storing all your files within a local repository. A repository is a big folder that stores all the files of a particular project. And GIT.. GIT is the version control system you will use, which has become the most widely used version control system in the industry.
In the next post, I will get into how to create and set up this environment locally. Then after this basic setup is complete, how to sync that to a remote repository on Github, where you will be able to push, pull, and play with your code you are working on. The Flatiron School does a great job at explaining this concept. For the longest time, things just were not quite clicking. But through the lessons at The Flatiron School, I have been able to better understand the concept of version control and how it is used.