Skip to main content

How to work with Git or GitHub for Digital Products

Illustration: Git Logo and branches

Are you using Git or GitHub to manage your digital products? If you’re not, you should strongly consider it.

Git and GitHub are essential to the success of many of today’s fastest growing software and digital product companies.

In this article we’ll give you a quick crash-course in what Git and GitHub are. We’ll also show you how they can help you grow your business.

Let’s git to it:


What is Git?

Git Logo

Git is a version control system invented by Linus Torvalds and Junio C Hamano. Linus is also the main inventor/developer of Linux! 🙇 

Side note: Linux is the open source operating system that runs 95%+ of all website servers (including ours) and millions of computers used by developers, tinkerers and builders all over the world. So Linus is a cool dude.

Git tracks every little change within a set of files. 

Tracking changes helps teams collaborate on building digital products and software. It allows team members from all over the world to work together. Git it allows these teams not to write over each other’s changes and break stuff.

Here is a handy list of terms and definitions to help you understand the wide world of git and version control.

Git Terms and Definitions

🤔 Git Terms🤓 Get Definitions
VCSA version control system
GitThe version control system that can run within several operating systems, created in 2005
Subversion (SVN)A separate, older version control system managed by the Apache Software Foundation, started in 2000
GitHubA for-profit company that offers a git hosting service on the web. Other similar services include BitBucket and GitLab
Repository / RepoA collection of files that gets set up and then the changes are tracked. Also called a code base. For example a WordPress plugin repo would have the PHP, Javascript, CSS, and HTML source code files that make up the plugin all being tracked.
Readme A document you can include in a github repository, usually (readme.md) that explains what the repo is, or how to use the digital product within
MD / MarkdownA format for writing text with minimal code or markup characters used for making styled text files in a repo. For example; to italicize a word in markdown you would add underscores before and after it like this ‘_italic_’.
Branch Making another copy of the digital product of software to try new things out (fixes or new functionality). You can later merge the branch back into the original/master branch with a pull request.
Commit When you make a change and save it to a branch.
Fork When you split off a copy of a digital product or software to make a complete new one. Think of it as a permanent branch cut off the tree to grow a new one. I know the tree analogy only goes so far.
Pull request When someone makes a contribution (change, improvement) on a branch and requests it be pulled into the main branch of a repository. When this is done, someone has to make sure it doesn’t break anything on the master branch. If approved it becomes part of the main branch.
Command line A text-only interface for running commands on your computer. Most of us use the GUI (see below). This is often called ‘Command Prompt’ on Windows or ‘Terminal’ on macOS.
GUI Graphical user interface, the visual Windows or macOS interface most of use use when working in our operating system. Different from the command line or terminal where you only work with text.
APIApplication Programming Interface, a standardized way for two computer programs/applications to ‘talk’ to one another

Command Line

Git is a command line tool. Command line is a way of working with your computer’s operating system without a graphical user interface (GUI). It’s not for the faint of heart or total newbie. You’ll have to do some reading to learn how to use it.

Screenshot: git running on command line

🤓 Click here to learn about git commands

When working with git on the command line, you have to type in little codes to do stuff. These codes are called git commands. You have to know the exact text to write, no typos.

🤓 Click here to learn how to install git with command line

If you don’t want to mess around with the command line, you’re in good company. There are lots of companies providing apps and services that make working with git easy. That’s where GitHub comes in.


What is GitHub?

GitHub Logo

GitHub is a company that provides a cloud-based git version control solution. By hosting collections of files (git repos) on a web server you can do tons of cool things.

  • Collaborate with anyone (or even the public)
  • Keep track of feature requests with issues, these provide a detailed history of the discussions and decisions that led to every change in the software
  • Project management; track bugs, ideas, future improvements in an organized way
Screenshot: working with GitHub issues
A GitHub Issue

Git ≠ GitHub

Git is an open-source version control framework.

GitHub is a software company and SaaS (software as a service). It was acquired by Microsoft in 2018. It uses the git VCS framework as the backbone of their product.

GitHub is the largest git-based software solution, but there are many others that are powerful and popular in their own right. Here’s are of the most popular git-based online platforms/services:

Each of these git hosting services have free and paid pricing plans.

Unless you have a reason not to, if you plan to work with git, you’ll want to do it on one of these hosting services. Then, you clone git repositories to your computer and keep your work in sync with the repositories stored on the internet. 

When working with a repo on your computer (called your ‘local’) you can use the command line. Or each of these hosting services has a desktop app you can use that has a GUI (graphical user interface).


Why use Git or GitHub?

Graphic: Why use git or GitHub?

You use git, or more likely one of the popular and easy-to-use online git-based platforms (GitHub, BitBucket, or GitLab) because they allow you to manage your digital product or software without losing your mind. 🤪

When developing a digital product, or software, it really helps to keep track of changes. And it helps to know when and why you made those changes. Otherwise, when something breaks, or you add a new feature, you have a mess on your hands.

You won’t know what was fixed, when it was fixed, why, or how!

Is Git Only for software?

No. Git is great for software development. Version control is so important, and such a time saver there. But you can use it for anything you want to track changes on. People use it to track changes on the content of books, or even for graphic design projects.


Your Digital Product Without Git

Graphic: Your Digital Product without Git

First, here’s what it looks like if you don’t use some sort of version control system.

Let’s pretend you’re developing a WordPress plugin. You are editing a file called ‘user-fucntions.php‘.

  • What happens when you want to change stuff?
  • What happens if you need to remember what/where/when you changed something?

It gets ugly really quick. Especially if you are working with a team. And even more so if that team is distributed (remote, all over the globe). Just look at some ‘solutions’ people still use or used in the past…

“Solution” Writing Comments

You can try to keep track of what you change, why, and when by leaving little comments in the code. All code formats have a way of leaving text in them that the computer/software ignores. These are referred to as comments.

This might work for one or two little changes. But it can get crazy really quick.

Screenshot: cowboy coding - piles of comments
All this for 2 lines of actual code!

Look at all those comments! If you have thousands or tens of thousands of lines of code. It becomes a real pain to figure out what’s what. It can also make the files huge, and even load slower, making the software or website run slower or even buggy.

“Solution” Keep Copies Files

You can try to make copies of the file as you go.

Note / Pro Tip – If you do this with PHP files disaster could strike. The server might try to run duplicate commands from the ugly pile of junk PHP files you left on your server. At least rename the file extension to something other than ‘.PHP’ as demonstrated here. Trust me.

Imagine what happens when you start keeping old copies of files around for a project with dozens or hundreds of files. It will be a colossal mess. You’ll have more junk files than real active files.

Screenshot: cowboy coding - stacks of files
This stack of files won’t end well

Cowboy Coding 🤠

What I just described above is often referred to as cowboy coding. It means you are taking things into your own hands and quickly fixing a problem under the gun. That’s fine when it works. But usually it either results in a big mess or a temporary fix leading to an eventual big mess later.

You can see how relying on tons of comments or clogging your server or computer with old renamed copies of files will lead to a big mess. If you are doing this on any degree of a large scale, or working with others, it’s just a waste of time.

It will slow you down. It will lead to errors. It will hamper your ability to make good products for your customers.

DevOps 👍

Instead of doing cowboy coding, smart entrepreneurs and digital product owners strive to build a smooth workflow. Another way to say that is to use smooth development operations (or DevOps). Devops is a newer term that describes the process of building digital products in an efficient workflow.

The goal is to make releasing improvements in functionality faster and smoother.

DevOps
Software development+ Information system operations

Your Digital Product With Git

Graphic: Your Digital Product with Git


Now, we’ll show you how powerful git is, in our examples below we’ll use a GitHub account.

On GitHub you can build your software and collaborate with people all over the world (distributed teams). You can even build in public! This is what open source software is, it’s software built in public.

Anyone can watch. Anyone can contribute. That leads to rapid innovation and improvement.

Want proof that it works? WordPress is an open source project. Thousands, if not tens of thousands of people have contributed to it. It now powers 43% of the internet! 🤯

Sample Repo

Easy Digital Downloads is built in public on GitHub. Check out our repo here.

EDD is a big complicated digital product. So for a more approachable example, let use this sample repo I just set up.

This example digital product for sale here is a simple vector graphic (SVG) file. It’s a blue circle. Pretend it’s a graphic someone would actually buy.

To follow along, check out the sample repo, or make your own.

To make your own, set up a free GitHub account and then on the top menu click + button and then New Repository.

Screenshot: Add new GitHub repository

🔍 Click here to check out our sample repo

Using the power of git, hosted on GitHub we can keep track of every little thing we’ve changed to the software over the entire life of the product. Here’s our little sample repo.

Screenshot: EDD Sample 1 GitHub Repo

Look here how we changed the stroke width of the circle’s outline from 41.67 pixels to 20 pixels.

Screenshot: Sample commit in sample repo

The Benefits of Git

Now, every change or improvement we ever make to this digital product will be tracked. We know what, when, how, why each change was made.

This digital product’s source code is being developed in public. Anyone can contribute. You can also make a GitHub repo private and only allow collaborators you want to work on it.

You can use GitHub issues to have discussions on all changes and possible changes. GitHub issues let you refer and link to code files, or individual commits to enable detailed communication.

Screenshot: working with GitHub issues

This git workflow is way better and more efficient than cowboy coding. Imagine this when it scales to a larger project.

This beats adding tons of comments to individual code files. That just leads to a mess and future problems. This is better and less error-prone than having stacks of old copies of files laying around making everything messy or even posing a security risk.

🔑 Git and GitHub (or BitBucket or GitLab) are crucial to building successful digital products. Especially software.

Git allows good project management and simplified devops. You are able to:

  • Increase efficiency of your workflow
  • Work with distributed/remote teams
  • Work at different times, in different time zones
  • Provide transparency
  • Build trust
  • Avoid costly mistakes

How to Use Git When Selling Digital Products

Graphic: How to work with git or GitHub when selling digital products

If you want to sell software or digital products you should use WordPress and Easy Digital Downloads (EDD).

WordPress + Easy Digital Downloads Logos

WordPress is the most popular and powerful website builder. It can grow and adapt to do anything you need it to.

EDD is the best way to sell digital products. It’s trusted by more than 50,000 businesses to do just that.

You can get started with EDD for free. The free-forever version of Easy Digital Downloads includes:

  • Full control over pricing
  • Shopping cart
  • Flexible checkout options
  • Discount codes
  • Customer management (basic CRM)
  • eCommerce reports
  • Stripe and/or PayPal integration
  • White label (full control over branding)

What are you waiting for ⁉️

Using WordPress and want to get Easy Digital Downloads for free?

Enter the URL to your WordPress website to install.

 

Connecting Your Digital Products to Git

EDD is free to use. However, to get the most out of EDD and Git you’ll want to purchase an All Access pass to get access to our Git Download Updater and Software Licensing extensions.

Install EDD, Software Licensing, and Git Download Updater

When EDD is installed on your site, you’ll have a new menu item on the left side of your WordPress dashboard called Downloads.

Screenshot: new Downloads menu item

Next, install Software Licensing and Git Download Updater. Click here to learn how to install plugins once you have the All Access pass here.

Git Connection Settings

With those plugins installed we’ll show you what it looks like to connect your store to GitHub.

On your WordPress dashboard go to Downloads > Settings > Extensions > Git Download Updater.

You see a settings screen with instructions on how to link to GitHub.

Screenshot: EDD settings for Git Download Updater

Click the ‘Create an application’ link on the first bullet point under GitHub Updater.

Make sure you are logged in to your GitHub account. You’ll be taken to GitHub where you can register a new OAuth Application. That just means you are giving GitHub and EDD permission to talk to each other via an API. 

It will look like this:

Screenshot: GitHub settings register a new OAuth app

You’ll give the OAuth app a name and description, and then enter your website domain name (URL) in the Homepage URL and the Authorization Callback URL settings.

Be sure to click Register Application when you’re done on that side.

You’ll have the OAuth app (or permissions created for EDD and GitHub to hang out and talk together). 

Copy the Client ID it gives you and paste that in the EDD Client ID settings. Do the same with the Client Secrets. You may have to create a new one by clicking ‘Generate a new client secret’ to make a new code.

Screenshot: GitHub settings get client ID and Client secrets

After entering the Client ID and Client Secrets, back on the EDD settings page you’ll hit the Authorize With GitHub button.

Screenshot: EDD settings add client ID and client secret

A page will load where you grant authorization.

Screenshot: Authorize EDD and GitHub OAuth

Then your EDD settings page will confirm the connection. When successful it will say; ‘Connected to GitHub’. Be sure to click Save Changes.

Screenshot: EDD settings connected to GitHub

Now you are ready to sell your digital product powered by EDD, Software Licensing, and Git Download Updater.


Start Selling your Digital Product with Git Integration

Let’s pretend I’m selling software, like a WordPress plugin, on my website. Which, side-note, we do everyday. EDD runs the EDD website.

With the example below we have a WordPress site with EDD, Software Licensing, and Git Download Updater installed. 

First, we set up the product (called a Download when using EDD). Click here for a quick guide on getting a product set up. We give the product a name and description.

Screenshot: Making EDD Download/Product with Git/GitHub integration | Add description

We give it a price.

Screenshot: Making EDD Download/Product with Git/GitHub integration | Add price

Next, we enable Software Licensing. Scroll down to the area called Licensing and check the box labeled ‘Check to enable license creation’. Set activation limit, version number and other basic settings. Click here for a guide on getting your product set up with software licensing. 

Screenshot: Making EDD Download/Product with Git/GitHub integration | Add licensing

Last, we link the product to our GitHub repository. Scroll to the section called Download Files. Check the box labeled ‘Fetch download from a git repository’.

Then, under File Downloads we select:

  • The Git Repository, for this example it’s the sample repo we’ve been using called EDD Sample 1.
  • We select Version Tag v1.0.0
  • The File Name and Plugin Folder of the product the customer get is set by the GitHub repo
  • Click the Fetch Now button and when it successfully connects it will say ‘✅ Fetched’
Screenshot: Making EDD Download/Product with Git/GitHub integration | Link to GitHub repo

Now you can deploy new releases of your product with a GitHub tagged Release.

Using EDD + Git or GitHub allows you to be organized with your workflow. You’ll work faster and prevent errors. Your customers will get better digital products.


Conclusion

That’s git for now. We’re confident that using Git or GitHub to manage your digital products will help you run your business. That’s because better and faster collaboration results in improved products for your customers!

You’ll work faster. And customers will get better products faster. 

Thanks for reading!

We have a lot of resources for digital creators like you. What do you want to learn about next?

Be sure to follow us on Facebook and Twitter for more resources about selling digital products and WordPress.

Joe Wells

About Joe Wells

Joe is a Marketing Specialist at Awesome Motive. For years he’s been helping people and organizations succeed with WordPress. He is also the founder of an alternative accounting solution for your side hustle called HustleBooks (powered by Easy Digital Downloads). He and his family live and play just outside Detroit. A busy dad, he enjoys running, watching and creating films.

@thisisjoewells

Leave a Reply

Your email address will not be published.