When it comes to talking about Git and WordPress, Subversion and WordPress, or any version control and WordPress, some people are immediately turned off.
Version control is scary. It’s overwhelming. It uses terms that aren’t clear as to what they mean; the advantages aren’t immediately evident, and the learning curve can be steep no matter how nice our GUIs get.
But in my opinion, if you opt to increase your ability as a professional developer working in the WordPress economy, learning a version control system is something that’s highly recommended.
The benefits far outweigh the learning curve, and once you get used to the workflow, you’ll likely wonder how you ever lived without it.
But the biggest challenge? Figuring out exactly where to start.
All About Git and WordPress
Some of you are likely familiar with Peter Suhm. I’ve talked about some of his previous work early last year. This time around, though, I’m opting to share something he’s making freely available, and it’s specifically targeting those who:
- Work with WordPress,
- Are not familiar with Git, at all.
First and foremost, an important thing to note is Git is not the same as GitHub. Git is a version control system (which I’ll talk a bit more about in a moment). GitHub is a website using Git as the version control system of choice (again, I’ll talk about this more in a moment).
But for those who are ready to get started and are looking to learn the ins-and-outs of Git in the context of WordPress, I recommend checking out Git For WordPress Developers.
The site offers 35(!) completely free(!) screencasts walking you through learning the ins and outs of Git and how they can benefit you in the work you do with your WordPress projects.
As described by the official Git website:
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.
This makes sense if you’re someone who’s used other version control systems in the past, but if you’re new to this whole thing then it may be a little confusing.
If I could try to make is as simple as possible, I’d say something like this:
Version Control is a way for you to track the status of each file in your project. Think of it as taking a snapshot of your source code at a point in time. If something goes wrong, you can always roll back to a previous version. If all is well, then you can push that version of the code out for users to use.
Yeah, it gets a bit more complicated when you introduce teams into it (and start talking about branches and what not), but that’s not what I’m looking to cover in this post.
My definition is probably in need of work, so feel free to offer your own in the comments.
GitHub is a site basing its entire functionality around Git. It provides a front-end through which we can all interact with publicly available source code.
- We’re able to view the source code.
- We’re able to copy the source code into our own repositories (which is a fancy word for the place where code is stored).
- We’re able to propose changes to other people’s source code.
- We’re able to track issues with our source code (and other’s source code).
- …and so on.
For those involved in WordPress, think of it like this: Git is to GitHub as Subversion is to the WordPress Plugin Repository.
Though it’s not a one-to-one analogy, the WordPress repository opts to use Subversion as its foundation for managing source code. GitHub uses Git.
With that basic primer in place, check out the work Peter has done to introduce Git to the WordPress development community.
Check out the screencasts, get used to the commands, and then once you have a solid understanding, considering using a GUI to help manage your projects. No, not everyone is a fan, but if you’re looking for something to use once you’ve got a solid understanding of Git, then I’m a fan of Tower.