Data report"State of code review 2024" is now liveRead the full report

What is GitHub?

Kenny DuMez
Kenny DuMez
Graphite software engineer

GitHub is a widely used platform that supports version control and collaboration. It allows developers to manage their projects efficiently while collaborating with others. In this guide, we'll explore what GitHub is used for, its key features, and the various services it offers.

GitHub is primarily used for hosting software development projects. It leverages Git, a distributed version control system, to allow multiple developers to work on the same project without conflicting with each other. Users can track changes, revert to previous stages, and collaborate on projects from anywhere in the world. GitHub is not only a repository hosting service but also a collaboration tool, offering features like issue tracking, feature requests, task management, and wikis for every project.

GitHub Copilot is an AI-powered code completion tool, designed to help developers write code faster and more efficiently. Developed by GitHub in collaboration with OpenAI, Copilot suggests whole lines or blocks of code as you type, learning from the context within your current codebase and comments. It's like having a co-pilot who helps with coding by suggesting syntax and snippets based on your coding style and the libraries you use.

A pull request in GitHub is a method of submitting contributions to a project. When a developer wants to contribute to a project, they fork the repository, make their changes, and then submit a pull request. This pull request is then reviewed by the project maintainers, who can discuss, modify, and eventually merge it into the main branch of the repository. Pull requests are central to the collaborative nature of GitHub, enabling open source and enterprise developers to contribute improvements and new features to projects.

A GitHub gist is a simple way to share snippets of code or text with others. Each gist is a mini-repository that can be forked, cloned, and manipulated like any other repository. Gists are useful for sharing smaller code snippets that don't need a complete repository. They can be made either public or private and can include multiple files.

A GitHub fork is a copy of a repository that allows you to freely experiment with changes without affecting the original project. Forking a repository is often the first step in contributing to a community project. After forking a repository, you can make changes in your fork and then submit a pull request to the original repository to merge your changes.

A GitHub repository (repo) is the most basic element of GitHub. It's where project files are stored along with the revision history, star and fork counts, labels, issues, and pull requests associated with the project. Repositories can be public or private. Public repositories are visible to everyone, while private repositories are restricted to specific collaborators.

GitHub Actions is a CI/CD (Continuous Integration and Continuous Deployment) platform that automates your software workflows, including builds, tests, and deployments. With GitHub Actions, you can write individual tasks, called actions, and combine them to create a workflow. Actions are custom scripts or defined tasks set to run after certain GitHub events, such as pushing to a repo or making a pull request.

GitHub offers a variety of services beyond simple Git repository hosting:

  • GitHub Pages: Hosts personal, organization, and project pages from a GitHub repository.
  • GitHub Marketplace: A place to find and share actions to use in your workflows or additional services that integrate with GitHub.
  • GitHub Codespaces: Provides a complete, configurable dev environment within GitHub that lets you contribute without needing to spend time setting up your local environment.
  • GitHub Security: Includes advanced security features like code scanning, secret scanning, and dependency review to help keep your projects secure.

For further reading on GitHub, see the official GitHub documentation.

Graphite
Git stacked on GitHub

Stacked pull requests are easier to read, easier to write, and easier to manage.
Teams that stack ship better software, faster.

Or install our CLI.
Product Screenshot 1
Product Screenshot 2