Browse by topics
Bootcamp
Setup
- Signing up for a new GitHub account
- Verifying your email address
- Troubleshooting email verification
- About commit email addresses
- Setting your commit email address on GitHub
- Setting your commit email address in Git
- Blocking command line pushes that expose your personal email address
- Setting your username in Git
- Dealing with line endings
- Supported browsers
- Troubleshooting connectivity problems
About GitHub
- GitHub Glossary
- Git and GitHub learning resources
- GitHub's products
- Differences between user and organization accounts
- Access permissions on GitHub
Exploring projects on GitHub
- Finding open source projects on GitHub
- About your personal dashboard
- About your organization dashboard
- About topics
- Classifying your repository with topics
- About stars
- Managing your stars
- Following people
- About GitHub mirrors
Using Git
Setting up and managing your GitHub user account
Managing user account settings
- Changing your GitHub username
- Merging multiple user accounts
- Deleting your user account
- Permission levels for a user account repository
- Permission levels for user-owned project boards
- Managing access to your user account's project boards
- What happens when I change my username?
- Best practices for leaving your company
- What does the 'Available for hire' checkbox do?
- Converting a user into an organization
Managing email preferences
- Types of emails GitHub sends
- Adding an email address to your GitHub account
- Changing your primary email address
- Setting a backup email address
- Managing marketing emails from GitHub
- Remembering your GitHub username or email
Managing access to your personal repositories
- Inviting collaborators to a personal repository
- Removing a collaborator from a personal repository
- Removing yourself from a collaborator's repository
Managing your membership in organizations
- About organization membership
- Accessing an organization
- Viewing people's roles in an organization
- Requesting organization approval for OAuth Apps
- Publicizing or hiding organization membership
- Removing yourself from an organization
Authenticating to GitHub
Keeping your account and data secure
- Creating a strong password
- Updating your GitHub access credentials
- Creating a personal access token for the command line
- Reviewing your SSH keys
- Reviewing your deploy keys
- Authorizing OAuth Apps
- Reviewing your authorized integrations
- Connecting with third-party applications
- Reviewing your authorized applications (OAuth)
- Reviewing your security log
- Removing sensitive data from a repository
- About anonymized image URLs
- About GitHub's IP addresses
- GitHub's SSH key fingerprints
- Sudo mode
- Preventing unauthorized access
Securing your account with two-factor authentication (2FA)
- About two-factor authentication
- Configuring two-factor authentication
- Configuring two-factor authentication recovery methods
- Accessing GitHub using two-factor authentication
- Recovering your account if you lose your 2FA credentials
- Changing two-factor authentication delivery methods for your mobile device
- Countries where SMS authentication is supported
- Disabling two-factor authentication for your personal account
Authenticating to a GitHub organization with SAML single sign-on
- About authentication with SAML single sign-on
- Authorizing an SSH key for use with a SAML single sign-on organization
- Authorizing a personal access token for use with a SAML single sign-on organization
- Viewing and managing your active SAML sessions
Connecting to GitHub with SSH
- About SSH
- Checking for existing SSH keys
- Generating a new SSH key and adding it to the ssh-agent
- Adding a new SSH key to your GitHub account
- Testing your SSH connection
- Working with SSH key passphrases
Troubleshooting SSH
- Using SSH over the HTTPS port
- Recovering your SSH key passphrase
- Deleted or missing SSH keys
- "Error: Permission denied (publickey)"
- "Error: Bad file number"
- "Error: Key already in use"
- "Error: Permission to user/repo denied to other-user"
- "Error: Permission to user/repo denied to user/other-repo"
- "Error: Agent admitted failure to sign"
- "Error: ssh-add: illegal option -- K"
- "Error: SSL certificate problem, verify that the CA cert is OK"
- "Error: We're doing an SSH key audit"
Managing commit signature verification
- About commit signature verification
- Checking for existing GPG keys
- Generating a new GPG key
- Adding a new GPG key to your GitHub account
- Telling Git about your signing key
- Associating an email with your GPG key
- Signing commits
- Signing tags
Troubleshooting commit signature verification
- Checking your commit and tag signature verification status
- Updating an expired GPG key
- Using a verified email address in your GPG key
Setting up and managing your GitHub profile
Customizing your profile
- About your profile
- About your organization's profile
- Personalizing your profile
- Pinning items to your profile
Managing contribution graphs on your profile
- Viewing contributions on your profile
- Showing an overview of your activity on your profile
- Publicizing or hiding your private contributions on your profile
- Sending your GitHub Enterprise Server contributions to your GitHub.com profile
- Why are my contributions not showing up on my profile?
- Troubleshooting commits on your timeline
Writing on GitHub
Getting started with writing and formatting on GitHub
Working with advanced formatting
- Organizing information with tables
- Creating and highlighting code blocks
- Autolinked references and URLs
Working with saved replies
- About saved replies
- Creating a saved reply
- Editing a saved reply
- Deleting a saved reply
- Using saved replies
Receiving notifications about activity on GitHub
Getting started with notifications
- About notifications
- About web notifications
- About email notifications
- Accessing your notifications
- Choosing the delivery method for your notifications
- About your organization’s news feed
Managing your notifications
- Marking notifications as read
- Saving notifications for later
- Subscribing to and unsubscribing from notifications
- Listing the issues and pull requests you're subscribed to
- Watching and unwatching repositories
- Watching and unwatching releases for a repository
- Watching and unwatching team discussions
- Listing the repositories you're watching
- About email notifications for pushes to your repository
Setting up and managing organizations and teams
Collaborating with groups in organizations
Managing membership in your organization
- Inviting users to join your organization
- Canceling or editing an invitation to join your organization
- Removing a member from your organization
- Reinstating a former member of your organization
- Can I create accounts for people in my organization?
Managing people's access to your organization with roles
- Permission levels for an organization
- Changing a person's role to owner
- Giving "team maintainer" permissions to an organization member
- Adding a billing manager to your organization
- Removing a billing manager from your organization
Organizing members into teams
- About teams
- Creating a team
- Setting your team's profile picture
- Adding organization members to a team
- Renaming a team
- Changing team visibility
- Moving a team in your organization’s hierarchy
- Requesting to add a child team
- Requesting to add or change a parent team
- Removing organization members from a team
- Disabling team discussions for your organization
- Deleting a team
Managing access to your organization's repositories
- Repository permission levels for an organization
- Viewing people with access to your repository
- Managing an individual's access to an organization repository
- Managing team access to an organization repository
- Adding outside collaborators to repositories in your organization
- Removing an outside collaborator from an organization repository
- Converting an organization member to an outside collaborator
- Converting an outside collaborator to an organization member
- Reinstating a former outside collaborator's access to your organization
Managing access to your organization’s project boards
- Project board permissions for an organization
- Managing access to a project board for organization members
- Managing team access to an organization project board
- Managing an individual’s access to an organization project board
- Adding an outside collaborator to a project board in your organization
- Removing an outside collaborator from an organization project board
Managing access to your organization's apps
Managing organization settings
- Verifying your organization's domain
- Renaming an organization
- Transferring organization ownership
- Restricting repository creation in your organization
- Restricting repository visibility changes in your organization
- Allowing people to fork private repositories in your organization
- Restricting the ability to add outside collaborators to organization repositories
- Allowing people to delete issues in your organization
- Setting team creation permissions in your organization
- Deleting an organization account
- Converting an organization into a user
- Upgrading to the Corporate Terms of Service
- Entering a data protection agreement with GitHub for GDPR compliance
Restricting access to your organization's data
- About OAuth App access restrictions
- Enabling OAuth App access restrictions for your organization
- Disabling OAuth App access restrictions for your organization
- Approving OAuth Apps for your organization
- Denying access to a previously approved OAuth App for your organization
Keeping your organization secure
- Viewing whether users in your organization have 2FA enabled
- Preparing to require two-factor authentication in your organization
- Requiring two-factor authentication in your organization
- Restricting email notifications about organization activity to an approved email domain
- Reviewing the audit log for your organization
- Reviewing your organization's installed integrations
Managing member identity and access in your organization with SAML single sign-on
- About identity and access management with SAML single sign-on
- About SCIM
- Connecting your identity provider to your organization
- Enabling and testing SAML single sign-on for your organization
- Preparing to enforce SAML single sign-on in your organization
- Enforcing SAML single sign-on for your organization
- Downloading your organization's SAML single sign-on recovery codes
- Accessing your organization if your identity provider is unavailable
Granting access to your organization with SAML single sign-on
- Managing bots and service accounts with SAML single sign-on
- Viewing and revoking organization members' authorized access tokens
- About two-factor authentication and SAML single sign-on
Encouraging positive contributions in your organization
- Limiting interactions in your organization
- Blocking a user from your organization
- Viewing users who are blocked from your organization
- Unblocking a user from your organization
Setting up and managing billing and payments on GitHub
Managing your GitHub billing settings
- About billing on GitHub
- Viewing your plans and billing date
- Adding or editing a payment method
- Viewing your payment history and receipts
- Adding information to your receipts
- Setting your billing email
- Changing the duration of your billing cycle
- Redeeming a coupon
- Troubleshooting a declined credit card charge
- Unlocking a locked account
- Removing a payment method
Managing billing for your GitHub account
- GitHub's billing plans
- About per-user pricing
- How does upgrading or downgrading affect the billing process?
- Upgrading your GitHub billing plan
- Viewing and managing pending changes to your billing plan
- Downgrading your GitHub billing plan
- Discounted billing plans
Managing billing for GitHub Marketplace apps
- About billing for GitHub Marketplace
- Upgrading the billing plan for a GitHub Marketplace app
- Downgrading the billing plan for a GitHub Marketplace app
- Canceling a GitHub Marketplace app
Managing billing for Git Large File Storage
- About billing for Git Large File Storage
- Viewing your Git Large File Storage usage
- Upgrading Git Large File Storage
- Downgrading Git Large File Storage
Setting up and paying for organizations for procurement companies
- About organizations for procurement companies
- Creating and paying for an organization on behalf of a client
- Upgrading or downgrading your client's paid organization
- Renewing your client's paid organization
Creating, cloning, and archiving repositories
Creating a repository on GitHub
- About repositories
- Creating a new repository
- About READMEs
- About code owners
- About repository languages
- Licensing a repository
- Creating an issues-only repository
- Limits for viewing content and diffs in a repository
- Duplicating a repository
Cloning a repository from GitHub
- Cloning a repository
- HTTPS cloning errors
- "Error: Repository not found"
- "Error: Remote HEAD refers to nonexistent ref, unable to checkout"
Archiving a GitHub repository
- About archiving repositories
- Archiving repositories
- About archiving content and data on GitHub
- Referencing and citing content
- Backing up a repository
Managing files in a repository
Managing files on GitHub
- Creating new files
- Adding a file to a repository
- Renaming a file
- Moving a file to a new location
- Editing files in your repository
- Editing files in another user's repository
- Tracking changes in a file
- Deleting files
- Getting permanent links to files
Managing files using the command line
- Adding a file to a repository using the command line
- Renaming a file using the command line
- Moving a file to a new location using the command line
Working with non-code files
- Rendering and diffing images
- Mapping geoJSON files on GitHub
- Working with Jupyter Notebook files on GitHub
- 3D File Viewer
- Rendering CSV and TSV data
- Rendering PDF documents
- Rendering differences in prose documents
Managing Large Files
Working with large files
- Conditions for large files
- Removing files from a repository's history
- Distributing large binaries
- What is my disk quota?
Versioning large files
- About Git Large File Storage
- Installing Git Large File Storage
- Configuring Git Large File Storage
- About storage and bandwidth usage
- Collaboration with Git Large File Storage
- Moving a file in your repository to Git Large File Storage
- Removing files from Git Large File Storage
- Resolving Git Large File Storage upload failures
Commits
- Creating a commit with multiple authors
- Creating a commit on behalf of an organization
- Changing a commit message
- Commit exists on GitHub but not in my local clone
- Commit branch and tag labels
- Why are my commits linked to the wrong user?
- Why are my commits in the wrong order?
- Comparing commits across time
- Differences between commit views
Searching for information on GitHub
Getting started with searching on GitHub
- About searching on GitHub
- Understanding the search syntax
- Troubleshooting search queries
- Sorting search results
- Enabling private GitHub.com repository search in your GitHub Enterprise Server account
Searching on GitHub
- Finding files on GitHub
- Searching for repositories
- Searching topics
- Searching code
- Searching commits
- Searching issues and pull requests
- Searching users
- Searching wikis
- Searching in forks
Keyboard Shortcuts
Collaborating with issues and pull requests
Working with forks
- About forks
- Configuring a remote for a fork
- Syncing a fork
- Merging an upstream repository into your fork
- Allowing changes to a pull request branch created from a fork
- What happens to forks when a repository is deleted or changes visibility?
Collaborating on repositories with code quality features enabled
Proposing changes to your work with pull requests
- About branches
- Creating and deleting branches within your repository
- About pull requests
- About comparing branches in pull requests
- Creating a pull request
- Creating a pull request from a fork
- Changing the stage of a pull request
- Requesting a pull request review
- Changing the base branch of a pull request
- Committing changes to a pull request branch created from a fork
Addressing merge conflicts
- About merge conflicts
- Resolving a merge conflict on GitHub
- Resolving a merge conflict using the command line
Reviewing changes in pull requests
- About pull request reviews
- Reviewing proposed changes in a pull request
- Filtering files in a pull request by file type
- Finding changed methods and functions in a pull request
- Commenting on a pull request
- Viewing a pull request review
- Incorporating feedback in your pull request
- Approving a pull request with required reviews
- Dismissing a pull request review
- Checking out pull requests locally
Incorporating changes from a pull request
Building a strong community
Setting up your project for healthy contributions
- About community profiles for public repositories
- Accessing a project's community profile
- Setting guidelines for repository contributors
- Adding a code of conduct to your project
- Adding support resources to your project
- Adding a license to a repository
- Creating a default community health file for your organization
- Helping new contributors find your project with labels
Using templates to encourage high-quality issues and pull requests in your repository
- About issue and pull request templates
- Creating issue templates for your repository
- Creating a pull request template for your repository
- Manually creating a single issue template for your repository
Collaborating with your team
- About team discussions
- Creating a team discussion
- Editing or deleting a team discussion
- Pinning a team discussion
Moderating comments and conversations
Encouraging positive contributions to your project
- Limiting interactions in your repository
- Blocking a user from your personal account
- Viewing users you've blocked from your personal account
- Unblocking a user from your personal account
- Reporting abuse or spam
Documenting your project with wikis
- About wikis
- Adding or editing wiki pages
- Creating a footer or sidebar for your wiki
- Editing wiki content
- Viewing a wiki's history of changes
- Changing access permissions for wikis
- Disabling wikis
Managing Remotes
- About remote repositories
- Adding a remote
- Changing a remote's URL
- Renaming a remote
- Removing a remote
- Which remote URL should I use?
- Why is Git always asking for my password?
- Dealing with non-fast-forward errors
- Fetching a remote
- Pushing to a remote
- Updating credentials from the OSX Keychain
- Caching your GitHub password in Git
Releases
- About Releases
- Creating releases
- Automation for release forms with query parameters
- Working with Tags
- Editing and deleting releases
- Getting the download count for your releases
- Linking to releases
Visualizing repository data with graphs
Accessing basic repository data
- About repository graphs
- Viewing a summary of repository activity
- Viewing contribution activity in a repository
- Viewing traffic to a repository
Analyzing changes to a repository's content
Understanding connections between repositories
- Viewing a repository's network
- Listing the forks of a repository
- Listing the projects that depend on a repository
- Listing the packages that a repository depends on
Importing your projects to GitHub
Importing source code to GitHub
- About GitHub Importer
- Importing a repository with GitHub Importer
- Updating commit author attribution with GitHub Importer
- Importing a Git repository using the command line
- Adding an existing project to GitHub using the command line
- Source code migration tools
Working with Subversion on GitHub
- What are the differences between Subversion and Git?
- Support for Subversion clients
- Subversion properties supported by GitHub
Advanced Git
- About Git rebase
- Using Git rebase on the command line
- Resolving merge conflicts after a Git rebase
- Changing author info
- Splitting a subfolder out into a new repository
- About Git subtree merges
Managing your work on GitHub
Managing your work with issues
- About issues
- Creating an issue
- Deleting an issue
- Opening an issue from code
- Transferring an issue to another repository
- Pinning an issue to your repository
- Creating a permanent link to a code snippet
- About task lists
- About automation for issues and pull requests with query parameters
- File attachments on issues and pull requests
- Assigning issues and pull requests to other GitHub users
- Viewing all of your issues and pull requests
- Disabling issues
- Closing issues using keywords
- About duplicate issues and pull requests
Labeling issues and pull requests
- About labels
- Creating a label
- Applying labels to issues and pull requests
- Editing a label
- Deleting a label
Managing project boards
- About project boards
- Creating a project board
- Editing a project board
- Linking a repository to a project board
- About automation for project boards
- Configuring automation for project boards
- Copying a project board
- Closing a project board
- Reopening a closed project board
- Deleting a project board
- Disabling project boards in a repository
- Disabling project boards in your organization
- Changing project board visibility
Tracking the progress of your work with project boards
- Adding issues and pull requests to a project board
- Adding notes to a project board
- Tracking progress on your project board
- Filtering cards on a project board
- Archiving cards on a project board
Tracking the progress of your work with milestones
- About milestones
- Creating and editing milestones for issues and pull requests
- Associating milestones with issues and pull requests
- Filtering issues and pull requests by milestone
- Viewing your milestone's progress
Finding information in a repository
- Filtering issues and pull requests
- Filtering issues and pull requests by assignees
- Filtering issues and pull requests by labels
- Filtering pull requests by review status
- Sorting issues and pull requests
- Using search to filter issues and pull requests
- Sharing filters
Administering a repository
Managing repository settings
- Transferring a repository
- Allowing people to fork a private repository owned by your organization
- Renaming a repository
- Setting repository visibility
- Deleting a repository
- Customizing how changed files appear on GitHub
- Viewing deployment activity for your repository
Managing branches in your repository
- Setting the default branch
- Viewing branches in your repository
- Deleting and restoring branches in a pull request
Configuring pull request merges
- About merge methods on GitHub
- Configuring commit squashing for pull requests
- Configuring commit rebasing for pull requests
Defining the mergeability of pull requests
- About protected branches
- Configuring protected branches
- About required status checks
- Types of required status checks
- Enabling required status checks
- About branch restrictions
- Enabling branch restrictions
- About required reviews for pull requests
- Enabling required reviews for pull requests
- About required commit signing
- Enabling required commit signing
Updating your project's dependencies
- About security alerts for vulnerable dependencies
- Viewing and updating vulnerable dependencies in your repository
- Managing alerts for vulnerable dependencies in your organization's repositories
Securing your repository
Gists
Automation
Customizing your GitHub workflow
Exploring integrations
Purchasing and installing apps in GitHub Marketplace
Customizing your project with GitHub Actions
- About GitHub Actions
- Creating a GitHub Action
- Creating a workflow with GitHub Actions
- Viewing your repository's workflows
GitHub Pages Basics
- What is GitHub Pages?
- Configuring a publishing source for GitHub Pages
- User, Organization, and Project Pages
- Creating Project Pages using the command line
- Securing your GitHub Pages site with HTTPS
- Unpublishing a Project Pages site
- Unpublishing a User Pages site
- Further reading on GitHub Pages
Customizing GitHub Pages
Using Jekyll as a static site generator with GitHub Pages
- About GitHub Pages and Jekyll
- About Jekyll themes on GitHub
- Adding a Jekyll theme to your GitHub Pages site
- Adding a Jekyll theme to your GitHub Pages site with the Jekyll Theme Chooser
- Customizing CSS and HTML in your Jekyll theme
- Setting up your GitHub Pages site locally with Jekyll
- Configuring Jekyll
Troubleshooting GitHub Pages builds
- Viewing Jekyll build error messages
- Generic Jekyll build failures
- "Page build failed: Missing docs folder"
- "Page build failed: Invalid submodule"
- "Page build failed: Missing submodule"
- "Page build failed: Markdown errors"
- "Page build failed: Config file error"
- "Page build failed: Unknown tag error"
- "Page build failed: Tag not properly terminated"
- "Page build failed: Tag not properly closed"
- "Page build failed: File does not exist in includes directory"
- "Page build failed: File is a symlink"
- "Page build failed: Symlink does not exist within your site's repository"
- "Page build failed: File is not properly UTF-8 encoded"
- "Page build failed: Invalid post date"
- "Page build failed: Invalid Sass or SCSS"
- "Page build failed: Invalid highlighter language"
- Updating your Markdown processor to kramdown
- "Page build failed: Relative permalinks configured"
- "Page build failed: Syntax error in 'for' loop"
- Files that start with an underscore are missing
- "Page build failed: Invalid YAML in data file"
- "Page build failed: Date is not a valid datetime"
Adding Jekyll plugins to a GitHub Pages site
- Configuring Jekyll plugins
- Sitemaps for GitHub Pages
- Search engine optimization for GitHub Pages
- Repository metadata on GitHub Pages
- Atom (RSS) feeds for GitHub Pages
- Redirects on GitHub Pages
- Emoji on GitHub Pages
- "@Mentions on GitHub Pages"
Using a custom domain with GitHub Pages
- "Quick start: Setting up a custom domain"
- About supported custom domains
- Custom domain redirects for GitHub Pages sites
- Adding or removing a custom domain for your GitHub Pages site
- Setting up an apex domain
- Setting up a www subdomain
- Setting up an apex domain and www subdomain
- Setting up a custom subdomain
- Troubleshooting custom domains
Additional customizations for GitHub Pages
- Creating a custom 404 page for your GitHub Pages site
- Using syntax highlighting on GitHub Pages
- Using a static site generator other than Jekyll
- MIME types on GitHub Pages
- Should I rename <username.github.com> repositories to <username.github.io>?
- Using submodules with Pages
Teaching and learning with GitHub Education
Using GitHub at your educational institution
Using GitHub for your schoolwork
- About GitHub Education for students
- Applying for a student developer pack
- Why wasn't my application for a student developer pack approved?
Using GitHub in your classroom and research
- About GitHub Education for educators and researchers
- Applying for an educator or researcher discount
- Why wasn't my application for an educator or researcher discount approved?
Finding talent with GitHub Jobs
Working with GitHub Support
- About GitHub Support
- GitHub Enterprise Cloud support
- About GitHub Premium Support
- GitHub Marketplace support
- Submitting a ticket
Understanding how GitHub uses and protects your data
- About GitHub's use of your data
- Requesting an archive of your personal account’s data
- Opting into or out of data use for your private repository
Site Policy
- GitHub Terms of Service
- GitHub Corporate Terms of Service
- GitHub Privacy Statement
- Global Privacy Practices
- GitHub Enterprise Cloud Addendum
- GitHub Enterprise Server License Agreement
- GitHub Connect Addendum to the GitHub Enterprise License Agreement
- GitHub Supplemental Terms for Microsoft Volume Licensing
- GitHub Enterprise Agreement
- GitHub Logo Policy
- Name Squatting Policy
- Submitting content removal requests
- DMCA Takedown Policy
- Guide to Submitting a DMCA Takedown Notice
- Guide to Submitting a DMCA Counter Notice
- GitHub Trademark Policy
- GitHub Sensitive Data Removal Policy
- GitHub Subprocessors and Cookies
- GitHub Bug Bounty Program Legal Safe Harbor
- Responsible Disclosure of Security Vulnerabilities
- Amendment to GitHub Terms of Service Applicable to U.S. Federal Government Users
- Guidelines for Legal Requests of User Data
- GitHub Community Guidelines
- GitHub Community Forum Code of Conduct
- GitHub Registered Developer Agreement
- GitHub Marketplace Terms of Service
- GitHub Marketplace Developer Agreement
- GitHub Pre-release Program
- GitHub Open Source Applications Terms and Conditions
- GitHub and Export Controls
- GitHub Statement Against Modern Slavery and Child Labor
- GitHub Anti-Bribery Statement
- GitHub Gifts and Entertainment Policy
- GitHub Event Terms
- GitHub Event Code of Conduct
- GitHub GPL Cooperation Commitment