GitHub for Music: What Git Does - Version Control Basics
![]() |
GitHub Octocat illustration by Tom Ray :) |
For the past 7 years, we have been using GitHub to collaborate on full DAW files remotely. We've actually released two albums and two EPs using this method.
I've looked around and haven't really noticed that anybody else has been using this same process that we do with music and GitHub. So I wanted to go through the things that we do to make this happen.
In this post, I want to go over the basics of version control for musicians who are only somewhat familiar with GitHub and version control.
What Git does - Version control basics
So let's go over the core idea of GitHub, specifically version control, and why it's beneficial for collaborating on music projects to share full DAW sessions.
GitHub is normally used by software and web developers. It gives them a folder to not only store the code they're working on, but also allows people to branch off that folder as a new folder and test out code without affecting the original.
This folder on github.com, also known as a repository, is what gives us the ability to share recording sessions without losing the original sessions.
Using GitHub gives us the ability to share recording sessions without losing the original sessions
One way to think about it is to imagine GitHub version control as a detailed history log for projects. And like I was saying, you can save every change you make as new versions by branching off the main folder.
One of the really cool things about this is you can even go back to previous versions, no matter when or who did the changes to the DAW session.
Version control in GitHub is like creating a “save-as” file for each session
Another way to think about it is that version control on GitHub is like creating a "save as" file for each session.
If you've ever had something that you're working on in a program like Photoshop or a Word document, you may have tried to save it as a new file like "v1" or "V2" in the name so you wouldn't lose the original or have to click undo 10 million times.
That's what GitHub is like. Except that it saves all of this in the original repository folder, you're not saving each change that you make as a new file or a new folder. You tell GitHub to track it as a new file.
Why GitHub for music?
Github shares code & folder structures
Like I mentioned earlier, for developers, GitHub shares code and folder structures. That is also why we would use it for music projects.
A DAW program is essentially set up that same way. It is just a folder with a software code file and folder structures to store what it needs.
The file that you click on to open the recording session in the DAW software is just a code file. The changes made in that code file can be managed for sharing on GitHub. That's what GitHub does: it manages code for software.
You would think it's something that could be easily done by sharing it on Google Drive or Dropbox, and many people have tried that, including me.
But the code management is actually very important to interacting with a program file and folders like Dropbox and Google Drive can't manage that collaboratively.
More later
For right now, I just wanted to go over that particular introduction to how GitHub is the main component for this process, instead of managing multiple versions of a session, but the beginnings of a version that everybody can manage on their own laptop or computer.
Next, I will go over how we set up our DAW GitHub repository for recording sessions.
Download My GitHub For Music Process
Download the whole process now!
This document explains my full method on how to use GitHub for collaborating on music projects with full DAW sessions.
The document outlines an unconventional way to use GitHub for music collaboration.