There are several ways to clone repositories available on GitHub.

When you view a repository while signed in to your account, the URLs you can use to clone the project onto your computer are available below the repository details:

Remote url list

For information on setting or changing your remote URL, see "Changing a remote's URL."

Cloning with HTTPS URLs (recommended)

The https:// clone URLs are available on all repositories, public and private. These URLs work everywhere--even if you are behind a firewall or proxy. In certain cases, if you'd rather use SSH, you might be able to use SSH over the HTTPS port.

When you git clone, git fetch, git pull, or git push to a remote repository using HTTPS URLs on the command line, you'll be asked for your GitHub username and password.


  • You can use a credential helper so Git will remember your GitHub username and password every time it talks to GitHub.

  • To clone a repository without authenticating to GitHub on the command line, you can use GitHub Desktop to clone instead.

When 2FA is enabled

If you have two-factor authentication enabled, you must create a personal access token to use as a password when authenticating to GitHub on the command line with HTTPS URLs.

For example, when you access a repository using Git on the command line using commands like git clone, git fetch, git pull or git push with HTTPS URLs, you must provide your GitHub username and your personal access token when prompted for a username and password.

For more information on setting up two-factor authentication, see "About two-factor authentication."

Cloning with SSH URLs

SSH URLs provide access to a Git repository via SSH, a secure protocol. To use these URLs, you must generate an SSH keypair on your computer and add the public key to your GitHub account. For information on setting up an SSH keypair, see "Generating an SSH key."

When you git clone, git fetch, git pull, or git push to a remote repository using SSH URLs, you'll be prompted for a password and must provide your SSH key passphrase.

Tip: SSH URLs can be used locally, or as a secure way of deploying your code to production servers. You can also use SSH agent forwarding with your deploy script to avoid managing keys on the server.

Cloning with Subversion

You can also use a Subversion client to access any repository on GitHub. Subversion offers a vastly different feature set than Git; for a quick overview, see "What are the differences between SVN and Git?."

We have a separate article with more information on how to interact with GitHub using Subversion.

Further reading