GitHub is a Web-based Git repository hosting service. It offers all of the distributed revision control and source code management (SCM) functionality of Git as well as adding its own features. Unlike Git, which is strictly a command-line tool, GitHub provides a Web-based graphical interface and desktop as well as mobile integration. It also provides access control and several collaboration features such as bug tracking, feature requests, task management, and wikis for every project. GitHub offers both plans for private repositories and free accounts, which are usually used to host open-source software projects. As of 2015, GitHub reports having over 11 million users and over 29.4 million repositories, making it the largest host of source code in the world. The trademark mascot of GitHub is Octocat, an anthropomorphized cat with octopus limbs, done in a manga style.
Development of the GitHub platform began on 1 October 2007. The site was launched in April 2008 by Tom Preston-Werner, Chris Wanstrath, and PJ Hyett after it had been made available for a few months prior as a beta period. Projects on GitHub can be accessed and manipulated using the standard Git command-line interface and all of the standard Git commands work with it. GitHub also allows registered and non-registered users to browse public repositories on the site. Multiple desktop clients and Git plugins have also been created by GitHub and other third parties that integrate with the platform. The site provides social networking-like functions such as feeds, followers, wikis (using wiki software called Gollum) and a social network graph to display how developers work on their versions (« forks ») of a repository and that fork (and branch within that fork) is newest. A user must create an account in order to contribute content to the site, but public repositories can be browsed and downloaded by anyone. With a registered user account, users are able to discuss, manage, create repositories, submit contributions to others’ repositories, and review changes to code. The software that runs GitHub was written using Ruby on Rails and Erlang by GitHub, Inc. developers Chris Wanstrath, PJ Hyett, and Tom Preston-Werner.
GitHub is mostly used for code. In addition to source code, GitHub supports the following formats and features: Documentation, including automatically-rendered README files in a variety of Markdown-like file formats (see README files on GitHub)
Issue tracking (including feature requests)
Small Websites can be hosted from public repositories on GitHub. The URL format is
GitHub Nested task-lists within files
Visualization of geospatial data* 3D render files that can be previewed using a new integrated STL file viewer that displays the files on a 3D canvas. The viewer is powered by WebGL and Three.js. Photoshop’s native PSD format can be previewed and compared to previous versions of the same file.
GitHub Licensing of repositories
GitHub’s Terms of Service do not require public software projects hosted on GitHub to meet the Open Source Definition. Therefore, (and in any case) it is advisable for users and developers intending to use a piece of software found on GitHub to read the software license in the repository (usually found in a top-level file called « LICENSE », « LICENSE.txt », or similar) to determine if it meets their needs.
GitHub Enterprise is similar to GitHub’s public service but is designed for use by large-scale enterprise software development teams where the enterprise wishes to host their repositories behind a corporate firewall.
GitHub also operates other services: a pastebin-style site called Gist that is for hosting code snippets (GitHub proper is for hosting larger projects), and a slide hosting service called Speaker Deck.
Tom Preston-Werner presented the then-new Gist feature at a punk rock Ruby conference in 2008. Gist builds on the traditional simple concept of a pastebin by adding version control for code snippets, easy forking, and SSL encryption for private pastes. Because each « gist » has its own Git repository, multiple code snippets can be contained in a single paste and they can be pushed and pulled using Git. Further, forked code can be pushed back to the original author in the form of a patch, so gists (pastes) can become more like mini-projects.
GitHub launched a new program called the GitHub Student Developer Pack to give students free access to popular development tools and services. GitHub partnered with Bitnami, Crowdflower, DigitalOcean, DNSimple, HackHands, Namecheap, Orchestrate, Screenhero, SendGrid, Stripe, Travis CI and Unreal Engine to launch the program.