GitHub is one of the most popular repositories for developers to house their ongoing projects. However, this repository goes well beyond being a storage platform for developers.
With GitHub you can collaborate on projects and invite other programmers to work on your project from anywhere. GitHub works seamlessly with the command-line tool Git, wherein developers can easily check in and check out their projects. GitHub offers the same distributed version control and source code management features found in Git and even adds more to the mix with bug tracking, feature requests, task management, access control for your projects, and so on.
This smart person's guide is an easy way to get up to speed on GitHub. We'll update this guide periodically when news and tutorials about GitHub are released.
- What is GitHub? GitHub is a web-based version control code repository that seamlessly integrates with Git and allows developers around the world to easily collaborate on development projects.
- Why does GitHub matter? As of April 2017, GitHub reported having over 26 million users and 57 million repositories, making it the single largest host of source code in the world.
- Who does GitHub affect? GitHub affects developers of all types—from open source to proprietary and individuals to enterprise-level teams.
- When is GitHub happening? Initial development began on GitHub in November 2007. GitHub was founded February 8, 2008 and launched April 10, 2008.
- How do I start using GitHub? Sign up for an account, install the necessary tools, create a repository and a branch, and start editing/collaborating on your code.
What is GitHub?
To understand GitHub, you must first learn about Git, the command-line tool that was started by Linux creator Linus Torvalds to serve as a version control system for the Linux kernel. Git was originally developed in 2005 to replace BitKeeper. The Linux kernel community is vast, and maintaining commits to the kernel would be a massive challenge without a reliable version control system—hence, the need for Git. Since its creation, Git has perfectly served the Linux kernel community.
But the development community also needed a way to easily collaborate on projects and network with peers, and that is where GitHub comes in. GitHub brings Git to the web, which in turn brings it to everyone. With a GitHub account, you can submit your projects either by using the git command on Linux or by using the GitHub Desktop application on Windows and Mac. With either tool you can check out projects, work on them, and commit your changes for review.
GitHub's features include:
- seamless code review;
- small and large team collaboration;
- project management;
- integrated issue and bug tracking;
- graphical representation of branches (an environment where you can try out new ideas);
- 99.69% git uptime (as reported in 2016); and
- enterprise accounts.
Although GitHub is the place for open source developers to collaborate on projects, closed-source developers worldwide use GitHub, too. In fact, companies including Google, Adobe, Twitter, Microsoft, and PayPal, as well as various government agencies in Australia, Argentina, Belgium, Canada, Finland, France, the US, and many more countries, use GitHub to great success.
One of the biggest success stories on GitHub is the Linux Kernel Community. As of this writing, the Linux kernel has over 670,000 commits, over 43,000 stars, and over 16,000 forks.
- What you can learn from GitHub's top 10 open source projects (TechRepublic)
- How to access GitHub, Bitbucket, and other git repositories on iOS (TechRepublic)
- GitHub open sources OctoDNS, new tool for managing DNS records (ZDNet)
- How to add version control for your Linux /etc directory (TechRepublic)
- How one company's DevOps success got them the green light to hire 1000 developers (TechRepublic)
- 3 iOS apps for learning to code in bite-size lessons (TechRepublic)
- Microsoft takes CodePlex to death row on back of GitHub monoculture (ZDNet)
Why does GitHub matter?
In the modern age of Software as a Service (SaaS) and mobile devices, app development must progress rapidly. Thanks to the likes of GitHub, quick and painless app development is a reality, and that has resulted in a significant reliance on version control tools like Git and GitHub; in fact, GitHub is the largest community of open source developers in the world—with millions of projects currently in development.
Consider this: GitHub serves the needs of some very large projects, including:
Many development projects would never get off the ground without the ability to collaborate. And since collaboration doesn't always happen in the same geolocation, developers need the tools to enable the ability to work with their peers on projects—that is where GitHub comes into play. Check out a project you need to work on, do your work, and check your work back in for review. How simple is that?
- GitHub awards researcher $18,000 for remote code execution flaw discovery (ZDNet)
- Ex-Facebook engineers launch Honeycomb, a new tool for your debugging nightmares (TechRepublic)
- Why the earliest open source licenses are still the most relevant (TechRepublic)
- The five biggest headaches for software developers (TechRepublic)
- What are the highest paid jobs in programming? The top earning languages in 2017 (TechRepublic)
Who does GitHub affect?
The most obvious people to benefit from GitHub is developers. With the help of GitHub, developers gain all the benefits of a centralized version control system. Projects are stored in repositories in such a way that developers can push and pull their changes to and from the project. Commits are reviewed and, if acceptable, merged. There is no more efficient way to work on a development project.
As a side effect of that efficiency, businesses benefit by way of faster software development. And because code is peer reviewed in GitHub, that software should be (in theory) more reliable, which benefits end users.
Open source projects are deeply affected by GitHub. The code repository helps attract developers to more open source projects, and it makes project management much easier.
- Why GitHub wants to get involved in Australia's innovation ecosystem (ZDNet)
- Job description: Mobile application developer (Tech Pro Research)
- Job description: DevOps engineer (Tech Pro Research)
- Microsoft joining the Linux Foundation comes down to one word: Cloud (TechRepublic)
- Apple is doubling down on open source (TechRepublic)
- 3 Linux Foundation networking projects that your business needs to know (TechRepublic)
- Arduino: The smart person's guide (TechRepublic)
When is GitHub happening?
GitHub development began on October 1, 2007 and was quickly released as a beta (written in Ruby). In April 2008, GitHub officially launched, with Tom Preston-Werner, Chris Wanstrath, and PJ Hyett at the helm.
On February 24, 2009, a team of GitHub members announced that GitHub had already accumulated over 46,000 public repositories. By July 5, 2009, GitHub was being used by over 100,000 developers and had grown to over 90,000 public repositories. On June 2, 2011, it was announced that GitHub surpassed SourceForge and Google Code in number of commits (for the period of January-May 2011). In 2016, GitHub made the Forbes Cloud 100 list, ranking 14.
As of 2017, GitHub employees 598 people and has over 26 million users.
- GitHub rolls out new business option (ZDNet)
- Linux Foundation chief: Businesses that don't use open source 'will fail' (TechRepublic)
- Ubuntu Server: The smart person's guide (TechRepublic)
- Top 10 challenges to DevOps implementation (TechRepublic)
Who are GitHub's competitors?
GitHub is not alone in the version control/developer collaboration business. Its competitors include:
How do I start using GitHub?
With the tools in place, follow the standard steps for using GitHub.
- Create a local git repository.
- Add a new file to the repo.
- Add a file to the staging environment.
- Create a commit.
- Create a new branch.
- Create a new repository on GitHub.
- Push a branch to GitHub.
- Create a pull request.
- Merge a pull request.
- Get changes on GitHub back to your computer.
Once you get the hang of the process, you'll be submitting projects and collaborating on code like a pro.
- Using a YubiKey to protect your Google account, Facebook, GitHub, Dropbox, Salesforce, and more (ZDNet)
- How to install SparkleShare on Ubuntu and connect it to GitHub (TechRepublic)
- The 10 hottest developer jobs of 2017 (TechRepublic)
- Developers: Want to make serious money? Don't work for a startup (TechRepublic)
- How to learn programming: 3 languages to get you started (TechRepublic)
- How to become a DevOps manager: 5 tips (TechRepublic)
- Ebook: IT leader's guide to making DevOps work (Tech Pro Research)
Jack Wallen is an award-winning writer for TechRepublic and Linux.com. He’s an avid promoter of open source and the voice of The Android Expert. For more news about Jack Wallen, visit his website jackwallen.com.