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 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 |
---|---|
VCS | A version control system |
Git | The 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 |
GitHub | A for-profit company that offers a git hosting service on the web. Other similar services include BitBucket and GitLab |
Repository / Repo | A 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 / Markdown | A 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. |
API | Application 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.
🤓 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 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
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?
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
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.
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.
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.
Dev | Ops |
Software development | + Information system operations |
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.
🔍 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.
Look here how we changed the stroke width of the circle’s outline from 41.67 pixels to 20 pixels.
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.
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
If you want to sell software or digital products you should use WordPress and Easy Digital Downloads (EDD).
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.
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.
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:
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.
After entering the Client ID and Client Secrets, back on the EDD settings page you’ll hit the Authorize With GitHub button.
A page will load where you grant authorization.
Then your EDD settings page will confirm the connection. When successful it will say; ‘Connected to GitHub’. Be sure to click Save Changes.
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.
We give it a 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.
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’
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?
- 💻 How to Easily Sell Software with WordPress
- 🌠 How to Sell WordPress Themes
- 🔌 How to Sell WordPress Plugins
- 😲 The Astonishing Benefits of Selling Digital Products
Be sure to follow us on Facebook and Twitter for more resources about selling digital products and WordPress.
Using WordPress and want to get Easy Digital Downloads for free?
Enter the URL to your WordPress website to install.
Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. We only recommend products that we believe will add value to our readers.