by Gennie Harris
"So...How exactly do we all work on this project at the same time?"
As a recent graduate of a private liberal arts college - where group projects were more common than hacky sack sessions on the quad - this is a question that has come up repeatedly. With each type of project we struggled to find a different solution: for essays and presentations, Google Drive seemed to be the easiest fix; for projects that spanned multiple kinds of media, each person could just claim a content type and stick to it. And this worked out for the most part, with one notable exception: what do you do when you're working on a website, app, or video game, and the code you're writing is in the same file as the section your teammate is editing?
Little did we know, there is.
Gitting up to Speed
Imagine my surprise and wonder when, during my first day at my first post-college job, I was introduced to this little piece of software known as Git. Now I know I'm a little late to the party, so many of you reading this are probably rolling your eyes at my ignorance right now - but let's assume for a second that someone out there was as sheltered in the programming world as I was, and is currently asking themselves (or Google, more likely), "What exactly is Git?"
Well, my friend:
"Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency."
In plain English, this means that Git allows individuals to save snapshots of their work in case they screw up somewhere and want to revert to a previous version; this means that groups can maintain a stable version of a program while working on various "branches" of edits, without worrying about breaking anything; and perhaps most importantly, this means that team members can simultaneously work on different parts of a program, site, or any other project, and then automatically merge their work together without the headache of doing it manually.
Gitting to Work
Here at Singlebrook, we use Git for all of these things and more. While the specifics vary from project to project, most of our work tends to follow the same basic game plan:
- Project files are hosted online in a Git repository (through Github, for example)
- All of the team members working on the project "clone" these files to their local machines
- Each developer can then make various edits to their local copy, using Git to keep track of their changes
- When a person makes a successful update to the project, they can "push" their version back to the repository, where all of their teammates can "pull" these changes back down to update their own versions
It's a little more complicated than that (but not much, I promise), but that's the basic way that Git allows us to work as a team without stepping on each other's toes - or ever having to worry about accidentally making irreversible mistakes and destroying a project. And Git isn't just ideal for groups working together: you can use it locally for individual work (and don't even have to bother with creating a repository online) to backup your projects and provide you the ability to revert to previous versions if necessary.
Gitting More Information
So I've given you a brief overview of Git, claiming that it - or similar programs - can make your life a lot easier, but don't just take my word for it! You can (and should!) check out the Git website and take it for a quick spin with TryGit.
Finally, if you've made the decision to jump into using Git as your Version Control System, take a couple hours to read the Pro Git book by Scott Chacon, which is free to read in its entirety online. In it, you can learn everything you need to know to start using Git, as well as best practices, tips and tricks, and more on its history and how it actually works.
Now you're ready to simplify your workflow and ease those group-project-related headaches with Git - so what are you waiting for? Git to it!