Using GitHub for Font Design
Let’s start with the basics assuming you aren’t familiar with GitHub or services like it. I would assume that most type designers are not since it’s a service typically used for coding and web development.
A great place to start is the Wikipedia definition of GitHub:
“GitHub Inc. is a web-based hosting service for version control using Git. It is mostly used for computer code. It offers all of the distributed version control and source code management functionality of Git as well as adding its own features. ”
Okay, let’s describe that in a language we understand. GitHub is an online service used for version control. The way it’s used for coding, in its simplest form, is to save versions of your code as you update it. We, as type designers, can apply this concept to our font/typeface designs.
Let’s break down the terminology you’ll be seeing in GitHub. And note that GitHub experts will probably hate my definitions but they are what makes the most sense to me.
I like to think of a repository as a folder for your whole project. It’s going to contain everything you need.
Branching is your way to make edits without affecting your main files. Think of a branch as a version that can be used or deleted depending on its success or lack thereof.
Forking is just like branching but essentially creates a new version of your entire project or repository.
Committing is what it sounds like. When you make a branch, or version of your typeface, and you’re happy with it, you can then commit it which overrides the existing version. If you’re unhappy with the new branch you’ve created, you can just delete it and your main file is unaffected.
One more note on committing. At any point in your process, you can click “commits” in your repository and view all versions or branches that you’ve committed in the past. This is useful if you need to go back and undo any changes you’ve made.
To bring this back into the context of type design I think it will help to go through this example process:
I have created a repository for my typeface in progress, Destiny. After creating the first weight and uppercase letters in Glyphs, I exported an .OTF file and uploaded it to my repository. I also included a README file to let people know what my project is about. I then went on to create the lowercase letters, numbers, & punctuation which I added as a branch and then committed. Shortly after that, I made some changes to a few letters that were a bit experimental. I then created a new branch with those changes but after some thought, I realized I didn’t want to go forward with them so I deleted the branch.
I’ll end by saying that this is only scraping the surface of GitHub. I personally don’t understand or know all of its functions and features but I do know that it’s a powerful tool for a multitude of project types. If you know of any other features that could add value to type designers don’t hesitate to reach out via email or leave a comment below for the rest to see!