--- layout: default title: Set Up Git (Linux) description: A quick guide to help you get started with Git --- 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 setting both up, and explain a little about how everything works along the way. If you already have Git experience and just want the short version, read the technical walkthrough instead. ##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._ 1. Download and install the latest version of Git with Synaptic. We suggest you install git-core, git-gui, and git-doc. Open Synaptic Mark git-core, git-gui, and git-doc for installation git-core, git-gui, and git-doc are selected When you’ve selected git-core, git-gui, and git-doc, hit “Apply” to install them. Click Apply __*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. Open the terminal

Need a quick lesson about Terminal?

Code blocks like those on this page are part of a scripting language called Bash. To use Bash scripts, we need to use an application that comes with your Mac called Terminal.

Input

			$ echo 'This is input text'This tooltip tells you what's going on.
		

A line that begins with the dollar sign ($) indicates a line of Bash script you need to type. To enter it, type the text that follows the $, hitting the return key at the end of each line. You can hover your mouse over each line for an explanation of what the script is doing

Output

			$ This is output text.
		

A line that does not begin with a $ is output text that is intended to give you information or tell you what to do next. We’ve colored output text green in these bootcamp tutorials.

User Specific Input

			$ echo 'username'Outputs the text in the quote marks.
		

Areas of yellow text represent your own personal info, repos, etc. If it is part of an input ($) line, you should replace your it with your own info when you type it. If it is part of output text, it is just for your reference. It will automatically show your own info in Terminal

Good to know: There will be times when you type code, hit return, and all you are given is another prompt. Some actions that you execute in Terminal don’t have any output. Don’t worry, if there is ever a problem with your code, Terminal will let you know.

Good to know: For security reasons, Terminal will not display what you type when entering passwords. Just type your password and hit the return key.

1. Check for SSH keys. Have an existing kepair? 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__. 2. Backup and remove existing SSH keys. Since there is already an SSH directory you’ll want to back it up and remove it:
	$ lsLists all the subdirectories in the current directory
	config  id_rsa  id_rsa.pub  known_hosts
	$ mkdir key_backupMakes a directory called "key_backup" in the current directory
	$ cp id_rsa* key_backupCopies the contents of the id_rsa directory into key_backup directory
	$ rm id_rsa*Deletes the contents of the id_rsa directory
	
3. 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 "user_name@username.com"Creates a new ssh key using the provided email
	Generating public/private rsa key pair.
	Enter file in which to save the key (/home/your_user_directory/.ssh/id_rsa):
	
Now you need to enter a passphrase. _[Why is this important?](../working-with-key-passphrases)_
	Enter passphrase (empty for no passphrase):
	Enter same passphrase again:
	
Which should give you something like this:
	Your identification has been saved in /home/your_user_directory/.ssh/id_rsa.
	Your public key has been saved in /home/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.com
	The key's randomart image is:
	+--[ RSA 2048]----+
	|     .+   +      |
	|       = o O .   |
	|        = * *    |
	|       o = +     |
	|      o S .      |
	|     o o =       |
	|      o . E      |
	|                 |
	|                 |
	+-----------------+
	
4. Add your SSH key to GitHub. On the GitHub site _Click “Account Settings”_ > _Click “SSH Public Keys”_ > _Click “Add another public key”_ __It’s important you copy your SSH key exactly as it is written without adding any newlines or whitespace.__ To ensure this, run the following code to copy the key to your clipboard.
	$ sudo apt-get install xclipDownloads and installs xclip
	$ xclip -sel clip < ~/.ssh/id_rsa.pubCopies the contents of the id_rsa.pub file to your clipboard
	
Now paste it into the “Key” field. Paste your SSH Key Hit “Add Key.” 5. 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 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”.
	PTY allocation request failed on channel 0
	Hi username! You've successfully authenticated, but GitHub does not provide shell access.
	Connection to github.com closed.

	
Don’t worry, about the “failed” part. All you should about is that you see “You’ve successfully authenticated” ##Then: Set Up Your Info Now that you have Git set up and your SSH keys entered in GitHub, it’s time to configure your personal info. 1. 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 "user_name@username.com"Sets the email of the user for all git instances on the system
	
2. 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.”_ Copy your API token In Terminal, 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 0123456789your0123456789tokenSets 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?
  1. Set Up Git
  2. Create A Repository
  3. Fork A Repository
  4. Be Social