Projects on GitHub can be accessed and managed using the standard
Git command-line interface; all standard Git commands work with it. GitHub also allows users to browse public
repositories on the site. Multiple desktop clients and Git
plugins are also available. In addition, 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 what fork (and branch within that fork) is newest. Anyone can browse and download public repositories, but only registered users can contribute content to repositories. With a registered user account, users can have discussions, manage repositories, submit contributions to others' repositories, and
review changes to code. GitHub began offering limited private repositories at no cost in January 2019 (limited to three contributors per project). Previously, only public repositories were free. On April 14, 2020, GitHub made "all of the core GitHub features" free for everyone, including "private repositories with unlimited collaborators." The fundamental software that underpins GitHub is
Git, written by
Linus Torvalds, creator of Linux. The additional software that provides the GitHub user interface was written using
Ruby on Rails and
Erlang by GitHub, Inc. developers Wanstrath, Hyett, and Preston-Werner.
Scope The primary purpose of GitHub is to facilitate the
version control and
issue tracking aspects of software development. Labels, milestones, responsibility assignment, and a search engine are available for issue tracking. For version control, Git (and, by extension, GitHub) allows
pull requests to propose changes to the source code. Users who can review the proposed changes can see a diff between the requested changes and approve them. In Git terminology, this action is called "committing" and one instance of it is a "commit." A history of all commits is kept and can be viewed at a later time. In addition, GitHub supports the following formats and features: • Documentation, including automatically rendered
README files in a variety of
Markdown-like file formats (see ) •
Wikis, with some repositories consisting solely of wiki content. These include curated lists of recommended software which have become known as awesome lists. •
GitHub Codespaces, an
online IDE providing users with a virtual machine intended to be a work environment to build and test code • Graphs: pulse, contributors, commits, code frequency, punch card, network, members • Integrations Directory • Email notifications • Discussions • Option to subscribe someone to notifications by
@ mentioning them. •
Emojis • Nested
task-lists within files • Visualization of
geospatial data • 3D render files can be previewed using an integrated STL file viewer that displays the files on a "3D canvas." The viewer is powered by
WebGL and
Three.js. • Support for previewing many common image formats, including Photoshop's PSD files • PDF document viewer • Security Alerts of known
Common Vulnerabilities and Exposures in different packages GitHub's Terms of Service do not require public software projects hosted on GitHub to meet the
Open Source Definition. The
terms of service state, "By setting your repositories to be viewed publicly, you agree to allow others to view and fork your repositories."
GitHub Enterprise GitHub Enterprise is a self-managed version of GitHub with similar functionality. It can be run on an organization's hardware or a cloud provider and has been available In November 2020, source code for GitHub Enterprise Server was leaked online in an apparent protest against DMCA takedown of
youtube-dl. According to GitHub, the source code came from GitHub accidentally sharing the code with Enterprise customers themselves, not from an attack on GitHub servers.
GitHub Pages In 2008, GitHub introduced GitHub Pages, a
static web hosting service for
blogs, project documentation, and books. All GitHub Pages content is stored in a Git repository as files served to visitors verbatim or in
Markdown format. GitHub is integrated with the
Jekyll static website and blog generator and GitHub continuous integration pipelines. Each time the content source is updated, Jekyll regenerates the website and automatically serves it via GitHub Pages infrastructure. Like the rest of GitHub, it includes free and paid service tiers. Websites generated through this service are hosted either as
subdomains of the github.io domain or can be connected to custom
domains bought through a third-party
domain name registrar. GitHub Pages supports HTTPS encryption.
GitHub Actions GitHub Actions was officially launched on November 13, 2019. It was first announced in October 2018 at GitHub Universe as a way to automate workflows, but the full general availability (GA) release came a year later in 2019. GitHub Actions, which allows building
continuous integration and
continuous deployment pipelines for testing, releasing and deploying software without the use of third-party websites/platforms. Unlike many other CI/CD tools, GitHub Actions launched with a marketplace where developers could share and reuse prebuilt actions (e.g., testing, linting, deployments). GitHub wanted to reduce reliance on third-party services and keep developers within the GitHub ecosystem. GitHub Actions provided hosted runners (Linux, Windows, macOS) that could dynamically scale, eliminating the need for self-managed build servers.
Gist GitHub also operates a
pastebin-style site called
Gist, which is for
code snippets, as opposed to GitHub proper, which is usually used for larger projects. Gist builds on the traditional simple concept of a
pastebin by adding version control for code snippets, easy forking, and
TLS encryption for private pastes. Because each "gist" is its own Git repository, multiple code snippets can be contained in a single page, and they can be pushed and pulled using Git. Unregistered users could upload Gists until March 19, 2018, when uploading Gists was restricted to logged-in users, reportedly to mitigate
spamming on the page of recent Gists. Gists'
URLs use hexadecimal IDs, and edits to Gists are recorded in a
revision history, which can show the text difference of thirty revisions per page with an option between a "split" and "unified" view. Like repositories, Gists can be forked, "starred", i.e., publicly bookmarked, and commented on. The count of revisions, stars, and forks is indicated on the gist page.
Education program GitHub launched a new program called the GitHub Student Developer Pack to give students free access to more than a dozen 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. In 2016, GitHub announced the launch of the GitHub Campus Experts program to train and encourage students to grow technology communities at their universities. The Campus Experts program is open to university students 18 years and older worldwide. GitHub Campus Experts are one of the primary ways that GitHub funds student-oriented events and communities, Campus Experts are given access to training, funding, and additional resources to run events and grow their communities. To become a Campus Expert, applicants must complete an online training course with multiple modules to develop community leadership skills.
GitHub Marketplace service GitHub also provides some
software as a service (SaaS) integrations for adding extra features to projects. Those services include: • Waffle.io: project management for software teams, which allows users to automatically see pull requests, automated builds, reviews, and deployments across repositories. • Rollbar: provides real-time debugging tools and full-stack exception reporting. •
Travis CI:
continuous integration service. • GitLocalize: provides utilities to manage project translation and internationalization.
GitHub Mobile In 2019, GitHub officially launched its native mobile applications for both iOS and Android. This announcement was made during GitHub Universe 2019, with the apps being released in beta for iOS initially, followed by an Android beta and full public release in early 2020.
GitHub Sponsors GitHub Sponsors allows users to make monthly money donations to projects hosted on GitHub. The public beta was announced on May 23, 2019, and the project accepts waitlist registrations.
The Verge said that GitHub Sponsors "works exactly like
Patreon" because "developers can offer various funding tiers that come with different perks, and they'll receive recurring payments from supporters who want to access them and encourage their work" except with "zero fees to use the program." Furthermore, GitHub offers incentives for early adopters during the first year: it pledges to cover payment processing costs and match sponsorship payments up to $5,000 per developer. Furthermore, users can still use similar services like Patreon and Open Collective and link to their websites. ==GitHub Copilot ==