If you’ve found yourself on this page, we’re assuming you’re brand new to Git and GitHub. This guide will walk you through the basics and explain a little bit about how everything works along the way.
This is the guide for setting up git in Linux. There are also guides for OSX and Windows.
First: Download and Install Git
At the heart of GitHub is an open source version control system (VCS) called Git*. Created by the same dudes that created Linux, Git is responsible for everything GitHub related that happens locally on your computer.
*If you don’t already know what Git is, take a crash course.
-
Download and install the latest version of Git with Synaptic.
We suggest you install git-core, git-gui, and git-doc.
*Note* In newer Debian/Ubuntu installations you will find git instead of git-core.
When you’ve selected git-core, git-gui, and git-doc, hit “Apply” to install them.
If you don’t have a package manager like Synaptic, or you’d rather install the necessary git components from the command line, you can alternatively run the script below:
$ sudo apt-get install git-core git-gui git-docInstalls git-core, git-gui, and git-doc on your system
*Note* Don’t worry that you don’t see an icon when it’s done. It’s not that kind of application.
Next: Set Up SSH Keys
We use SSH keys to establish a secure connection between your computer and GitHub. Setting them up is fairly easy, but does involve a number of steps.
To make sure you generate a brand new key, you need to check if one already exists. First, you need to open an app called Terminal.

Need a quick lesson about Terminal?
- Check for SSH keys. Have an existing key pair? You can skip to Step 4.
First, we need to check for existing ssh keys on your computer:
$ cd ~/.sshChecks to see if there is a directory named ".ssh" in your user directory
If it says “No such file or directory“ skip to step 3. Otherwise continue to step 2.
- Backup and remove existing SSH keys.
Since there is already an SSH directory you’ll want to back the old one up and remove it:
$ lsLists all the subdirectories in the current directoryconfig id_rsa id_rsa.pub known_hosts$ mkdir key_backupmakes a subdirectory called "key_backup" in the current directory$ cp id_rsa* key_backupCopies the id_rsa and id_rsa.pub files into key_backup$ rm id_rsa*Deletes the id_rsa and id_rsa.pub files
- Generate a new SSH key.
To generate a new SSH key, enter the code below. We want the default settings so when asked to enter a file in which to save the key, just press enter.
$ ssh-keygen -t rsa -C "your_email@youremail.com"Creates a new ssh key using the provided emailGenerating public/private rsa key pair.Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa):<press enter>
Now you need to enter a passphrase.
Why do passphrases matter?
Enter passphrase (empty for no passphrase):<enter a passphrase>Enter same passphrase again:<enter passphrase again>
Which should give you something like this:
Your identification has been saved in /Users/your_user_directory/.ssh/id_rsa.Your public key has been saved in /Users/your_user_directory/.ssh/id_rsa.pub.The key fingerprint is:01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db user_name@username.comThe key's randomart image is:+--[ RSA 2048]----+| .+ + || = o O . || = * * || o = + || o S . || o o = || o . E || || |+-----------------+
- Add your SSH key to GitHub.
On the GitHub site Click “Account Settings” > Click “SSH Public Keys” > Click “Add another public key”
Open the id_rsa.pub file with a text editor (Notepad, TextEdit, or gedit will do just fine). This is your public SSH key. You may need turn on “view hidden files” to find it because the .sshdirectory is hidden. It’s important you copy your SSH key exactly as it is written without adding any newlines or whitespace. Now paste it into the “Key” field.
Can’t view hidden files? Other ways to copy:
Now paste it into the “Key” field.
Hit “Add Key.”
- Test everything out.
To make sure everything is working you’ll now SSH to GitHub. Don’t change the “git@github.com” part. That’s supposed to be there.
$ ssh -T git@github.comAttempts to ssh to github
Which should give you this:
The authenticity of host 'github.com (207.97.227.239)' can't be established.RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.Are you sure you want to continue connecting (yes/no)?
Don’t worry, this is supposed to happen. Type “yes”.
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
Having problems?
Then: Set Up Your Info
Now that you have Git set up and your SSH keys entered into GitHub, it’s time to configure your personal info.
- Set your username and email.
Git tracks who makes each commit by checking the user’s name and email. In addition, we use this info to associate your commits with your GitHub account. To set these, enter the code below, replacing the name and email with your own. The name should be your actual name, not your GitHub username.
$ git config --global user.name "Firstname Lastname"Sets the name of the user for all git instances on the system$ git config --global user.email "your_email@youremail.com"Sets the email of the user for all git instances on the system
More about user info
- Set your GitHub token.
Some tools connect to GitHub without SSH. To use these tools properly you need to find and configure your API Token.
On the GitHub site Click “Account Settings” > Click “Account Admin.”
At the command line run the following code, using your GitHub username and token in place of the ones shown.
$ git config --global github.user usernameSets the GitHub username for all git instances on the system$ git config --global github.token 0123456789yourf0123456789tokenSets the GitHub token for all git instances on the system
*Note* If you ever change your GitHub password, a new token will be created and will need to be updated.
Lastly: Celebrate
Congratulations, you now have Git and GitHub all set up! What do you want to do next?