Before I was introduced to Git, I had never heard of “version control” nor did I understand what it meant (though in hindsight, the name kind of gives it away). That being said however, I did have a method for managing my file revisions. It was called making a copy of a file I wanted to edit, editing the copy, then either overwriting the original or if I messed up, deleting the copy and starting over. You probably have used this method as well.
I was first introduced to Git in my introduction to programming class my freshman year. My TA had mentioned it during one of our lab sections and I was interested, so I asked him for the slides (he gave a talk on it sometime earlier). After reviewing his slides, I saw the potential for Git, but I never really felt a desire to use it. My methods of version control (if you could even call it that) was working just fine and I didn’t want to spend a lot of time learning a new system. That said, I never touched Git for the next two years.
Things are always more obvious in hindsight. Between my freshman year and now, I’ve worked on projects that utilized Git and projects that didn’t (but should’ve) utilized Git. One example of a project that didn’t (but should’ve) utilized Git is Micromouse. We had a relatively large codebase for the firmware and we kept revisions by uploading the source files to a shared Google Drive folder. We had names like “solver_v4”, “solver_final”, “solver_final_final” and “solver_final_forreal”. Looking back, we could’ve saved a lot of time (and headache) by using Git and not have to download and upload the entire codebase whenever we made a change. Plus, it was super confusing figuring out which version was the most recent and which version was the last version that worked. Oh well.
Nowadays, I use Git for just about everything. I have my professional portfolio, some web applications, as well as my Android projects. I’m even using Git and GitHub to host my lab assignments so my lab partner and I can both work on it. It’s not just me either. Git has grown to be the most popular version control system today, with just about every large tech company using it.
I think a large part of Git’s success is due to GitHub, a web client for Git. GitHub offers user-friendly controls (in contrast with Git’s command line controls) that help people get started quickly and really see what’s going on. This opened a lot of doors for new programmers to start using Git (via GitHub) and this helped both parties. This also had a big impact on open-source software by increasing the visibility of projects and the convenience of viewing a project and contributing to it. All that being said, now more than ever, it is definitely important to Git good at Git.