What Is GitHub, and Why Should I Use It?

Learn how GitHub can help optimize your development workflow

Software developers
••• gilaxia/Getty Images

GitHub is an open-source repository hosting service, sort of like a cloud for code. It hosts your source code projects in a variety of different programming languages and keeps track of the various changes made to every iteration. The service is able to do this by using git, a revision control system that runs in the command line interface.

Other sources are similar to GitHub—including BitBucket, Microsoft Team Foundation Server, and more—but the sheer size of the community should be important to you if you want as many people as possible to see your project. As of 2018, GitHub reported having more than 28 million users, significantly more than its competitors.

The other differences involve cost. GitHub offers private repositories only at an additional cost, while a few of the other services offer private repositories for free. However, these typically come with limited storage and bandwidth.

Using GitHub makes it easier to collaborate with colleagues and peers and look back at previous versions of your work. If you aren't already using GitHub for your coding projects, here are a few reasons to consider doing so.

Have Your Code Reviewed by the Community

Your project is a skeleton. It does what you want it to do, but you’re not always sure how the wider population will implement it—or if it even works for everyone.

Fortunately, when you post your project on GitHub, the wider community of programmers and hobbyists can download and evaluate your work. They can give you a heads-up on possible issues such as conflicts or unforeseen dependency issues.

GitHub Is a Repository

Because GitHub is a repository, it allows your work to get out in front of the public. Moreover, it is one of the largest coding communities around, so using it can provide wide exposure for your project and for you. The more people you have to review your project, the more attention and use it is likely to attract.

Collaborate and Track Changes in Your Code Across Versions

As when using Microsoft Word or Google Drive, you can have a version history of your code so that is not lost with every iteration. GitHub also tracks changes in a changelog, so you can know exactly what is changed each time. This feature is especially helpful for looking back in time and quickly identifying changes a collaborator made.

Use Multiple Integration Options

GitHub can integrate with common platforms such as Amazon and Google Cloud, as well as services such as Code Climate to track your feedback, and it can highlight syntax in more than 200 different programming languages.

Follow the Open-Source Trend

Many companies and organizations, large and small, are moving to open-source solutions. EnterpriseDB offers Postgres, an open-source database, and states on its website that open-source technologies allow for greater flexibility in a constantly changing environment like technology. It cites the Department of Defense and the Consumer Financial Protection Bureau as large U.S. agencies that have moved to open source in order to respond quickly to technology changes.

Open-source projects tend to be more flexible because they respond more rapidly to market demands. Closed-source programs might exist in a bubble while trying to convince a target market of its value as opposed to being genuinely responsive. GitHub provides a community where programmers are constantly working to solve current problems and making solutions available to the public.

Find Talent for Your Organization

Because of the breadth of the GitHub community, you can sometimes find programmers working on similar projects or who have skills, experiences, or a vision that offers a good fit for your organization. By being a part of the community, you can identify these people, work with them, and possibly even bring them on board to work for you.

Develop and Implement a Management Strategy

You likely have multiple people working on projects at the same time, and many of them may be in different locations and possibly even different countries. With the ability to collaborate on a project through GitHub, you can establish a system for different collaborators to work together without stepping on each others' toes.

For example, you don't want one collaborator addressing a problem in a way that conflicts with another collaborator's approach. Everyone can know and see what everyone else is doing, and projects can be managed in whatever way is best for your staff and your organization's needs.