This guide will walk you through setting up your GitHub account and getting started with GitHub's features for collaboration and community.
The first steps in starting with GitHub are to create an account, choose a product that fits your needs best, verify your email, set up two-factor authentication, and view your profile.
There are several types of accounts on GitHub. Every person who uses GitHub has their own user account, which can be part of multiple organizations and teams. Your user account is your identity on GitHub and represents you as an individual.
To sign up for a GitHub account, navigate to https://github.com/ and follow the prompts.
To keep your GitHub account secure you should use a strong and unique password. For more information, see "Creating a strong password."
You can choose GitHub Free or GitHub Pro to get access to different features for your personal account. You can upgrade at any time if you are unsure at first which product you want.
For more information on all of GitHub's plans, see "GitHub's products."
To ensure you can use all the features in your GitHub plan, verify your email address after signing up for a new account. For more information, see "Verifying your email address."
Two-factor authentication, or 2FA, is an extra layer of security used when logging into websites or apps. We strongly urge you to configure 2FA for the safety of your account. For more information, see "About two-factor authentication."
Your GitHub profile tells people the story of your work through the repositories and gists you've pinned, the organization memberships you've chosen to publicize, the contributions you've made, and the projects you've created. For more information, see "About your profile" and "Viewing contributions on your profile."
To best use GitHub, you'll need to set up Git. Git is responsible for everything GitHub-related that happens locally on your computer. To effectively collaborate on GitHub, you'll write in issues and pull requests using GitHub Flavored Markdown.
GitHub's collaborative approach to development depends on publishing commits from your local repository to GitHub for other people to view, fetch, and update using Git. For more information about Git, see the "Git Handbook" guide. For more information about how Git is used on GitHub, see "GitHub flow."
If you plan to use Git locally on your computer, whether through the command line, an IDE or text editor, you will need to install and set up Git. For more information, see "Set up Git."
If you prefer to use a visual interface, you can download and use GitHub Desktop. GitHub Desktop comes packaged with Git, so there is no need to install Git separately. For more information, see "Getting started with GitHub Desktop."
Once you install Git, you can connect to GitHub repositories from your local computer, whether your own repository or another user's fork. When you connect to a GitHub repository from Git, you'll need to authenticate with GitHub using either HTTPS or SSH. For more information, see "About remote repositories."
Everyone has their own unique workflow for interacting with GitHub; the interfaces and methods you use depend on your preference and what works best for your needs.
For more information about how to authenticate to GitHub with each of these methods, see "About authentication to GitHub."
|Browse to GitHub.com||If you don't need to work with files locally, GitHub lets you complete most Git-related actions directly in the browser, from creating and forking repositories to editing files and opening pull requests.||This method is useful if you want a visual interface and need to do quick, simple changes that don't require working locally.|
|GitHub Desktop||GitHub Desktop extends and simplifies your GitHub.com workflow, using a visual interface instead of text commands on the command line. For more information on getting started with GitHub Desktop, see "Getting started with GitHub Desktop."||This method is best if you need or want to work with files locally, but prefer using a visual interface to use Git and interact with GitHub.|
|IDE or text editor||You can set a default text editor, like Atom or Visual Studio Code to open and edit your files with Git, use extensions, and view the project structure. For more information, see "Associating text editors with Git."||This is convenient if you are working with more complex files and projects and want everything in one place, since text editors or IDEs often allow you to directly access the command line in the editor.|
|Command line, with or without GitHub CLI||For the most granular control and customization of how you use Git and interact with GitHub, you can use the command line. For more information on using Git commands, see "Git cheatsheet."|
GitHub CLI is a separate command-line tool you can install that brings pull requests, issues, GitHub Actions, and other GitHub features to your terminal, so you can do all your work in one place. For more information, see "GitHub CLI."
|This is most convenient if you are already working from the command line, allowing you to avoid switching context, or if you are more comfortable using the command line.|
|GitHub API||GitHub has a REST API and GraphQL API that you can use to interact with GitHub. For more information, see "Getting started with the API."||The GitHub API would be most helpful if you wanted to automate common tasks, back up your data, or create integrations that extend GitHub.|
To make your communication clear and organized in issues and pull requests, you can use GitHub Flavored Markdown for formatting, which combines an easy-to-read, easy-to-write syntax with some custom functionality. For more information, see "About writing and formatting on GitHub."
You can learn GitHub Flavored Markdown with the "Communicating using Markdown" course on GitHub Learning Lab.
Our integrated search allows you to find what you are looking for among the many repositories, users and lines of code on GitHub. You can search globally across all of GitHub or limit your search to a particular repository or organization. For more information about the types of searches you can do on GitHub, see "About searching on GitHub."
Our search syntax allows you to construct queries using qualifiers to specify what you want to search for. For more information on the search syntax to use in search, see "Searching on GitHub."
With GitHub, you can create, edit, move and delete files in your repository or any repository you have write access to. You can also track the history of changes in a file line by line. For more information, see "Managing files on GitHub."
Any number of people can work together in repositories across GitHub. You can configure settings, create project boards, and manage your notifications to encourage effective collaboration.
A repository is like a folder for your project. You can have any number of public and private repositories in your user account. Repositories can contain folders and files, images, videos, spreadsheets, and data sets, as well as the revision history for all files in the repository. For more information, see "About repositories."
When you create a new repository, you should initialize the repository with a README file to let people know about your project. For more information, see "Creating a new repository."
You can clone an existing repository from GitHub to your local computer, making it easier to add or remove files, fix merge conflicts, or make complex commits. Cloning a repository pulls down a full copy of all the repository data that GitHub has at that point in time, including all versions of every file and folder for the project. For more information, see "Cloning a repository."
A fork is a copy of a repository that you manage, where any changes you make will not affect the original repository unless you submit a pull request to the project owner. Most commonly, forks are used to either propose changes to someone else's project or to use someone else's project as a starting point for your own idea. For more information, see "Working with forks."
If you have existing projects you'd like to move over to GitHub you can import projects using the GitHub Importer, the command line, or external migration tools. For more information, see "Importing source code to GitHub."
You can collaborate on your project with others using your repository's issues, pull requests, and project boards. You can invite other people to your repository as collaborators from the Collaborators tab in the repository settings. For more information, see "Inviting collaborators to a personal repository."
You are the owner of any repository you create in your user account and have full control of the repository. Collaborators have write access to your repository, limiting what they have permission to do. For more information, see "Permission levels for a user account repository."
As the owner of a repository you can configure several settings, including the repository's visibility, topics, and social media preview. For more information, see "Managing repository settings."
To encourage collaborators in your repository, you need a community that encourages people to use, contribute to, and evangelize your project. For more information, see "Building Welcoming Communities" in the Open Source Guides.
By adding files like contributing guidelines, a code of conduct, and a license to your repository you can create an environment where it's easier for collaborators to make meaningful, useful contributions. For more information, see "Setting up your project for healthy contributions."
Notifications provide updates about the activity on GitHub you've subscribed to or participated in. If you're no longer interested in a conversation, you can unsubscribe, unwatch, or customize the types of notifications you'll receive in the future. For more information, see "About notifications."
You can use GitHub Pages to create and host a website directly from a GitHub repository. For more information, see "About GitHub Pages."
You can enable GitHub Discussions for your repository to help build a community around your project. Maintainers, contributors and visitors can use discussions to share announcements, ask and answer questions, and participate in conversations around goals. For more information, see "About discussions."
You can use tools from the GitHub Marketplace, the GitHub API, and existing GitHub features to customize and automate your work.
GitHub Marketplace contains integrations that add functionality and improve your workflow. You can discover, browse, and install free and paid tools, including GitHub Apps, OAuth Apps, and GitHub Actions, in GitHub Marketplace. For more information, see "About GitHub Marketplace."
There are two versions of the GitHub API: the REST API and the GraphQL API. You can use the GitHub APIs to automate common tasks, back up your data, or create integrations that extend GitHub. For more information, see "About GitHub's APIs."
With GitHub Actions, you can automate and customize GitHub's development workflow on GitHub. You can create your own actions, and use and customize actions shared by the GitHub community. For more information, see "Learn GitHub Actions."
GitHub Packages is a software package hosting service that allows you to host your software packages privately or publicly and use packages as dependencies in your projects. For more information, see “Introduction to GitHub Packages."
GitHub has a variety of security features that help keep code and secrets secure in repositories. Some features are available for all repositories, while others are only available for public repositories and repositories with a GitHub Advanced Security license. For an overview of GitHub security features, see "GitHub security features."
As a repository administrator, you can secure your repositories by configuring repository security settings. These include managing access to your repository, setting a security policy, and managing dependencies. For public repositories, and for private repositories owned by organizations where GitHub Advanced Security is enabled, you can also configure code and secret scanning to automatically identify vulnerabilities and ensure tokens and keys are not exposed.
For more information on steps you can take to secure your repositories, see "Securing your repository."
A large part of building securely is maintaining your project's dependencies to ensure that all packages and applications you depend on are updated and secure. You can manage your repository's dependencies on GitHub by exploring the dependency graph for your repository, using Dependabot to automatically raise pull requests to keep your dependencies up-to-date, and receiving Dependabot alerts and security updates for vulnerable dependencies.
For more information, see "Securing your software supply chain."
There are many ways to participate in the GitHub community. You can contribute to open source projects, interact with people in the GitHub Community Support, or learn with GitHub Learning Lab.
Contributing to open source projects on GitHub can be a rewarding way to learn, teach, and build experience in just about any skill you can imagine. For more information, see “How to Contribute to Open Source" in the Open Source Guides.
You can find personalized recommendations for projects and good first issues based on your past contributions, stars, and other activities in Explore. For more information, see “Finding ways to contribute to open source on GitHub."
You can connect with developers around the world in GitHub Community Support to ask and answer questions, learn, and interact directly with GitHub staff.
You can learn new skills by completing fun, realistic projects in your very own GitHub repository with GitHub Learning Lab. Each course is a hands-on lesson created by the GitHub community and taught by the friendly Learning Lab bot.
For more information, see “Git and GitHub learning resources."
GitHub Sponsors allows you to make a monthly recurring payment to a developer or organization who designs, creates, or maintains open source projects you depend on. For more information, see “About GitHub Sponsors."
GitHub Support can help you troubleshoot issues you run into while using GitHub. For more information, see “About GitHub Support."