Setting Up Git
Prerequisites
In this lesson we use Git from the Bash Shell.
Some previous experience with the shell is expected,
but isn't mandatory.
Get Started
Linux and Mac users should open a terminal, Windows users to should go to the Start Menu and open Git Bash from the Git group.
We’ll start by exploring how version control can be used to keep track of what one person did and when.
Setting Up Git
The first time we use Git on a new machine, we need to configure it. We're going to set some global options, so when Git starts tracking changes to files it records who made them and how to contact them.
git config --global user.name "Firstname Surname" git config --global user.email "fsurname@university.ac.uk"
(Please use your own name and the email address you used to sign up to GitHub!)
We're going to set Nano, a simple, minimal command-line text editor to be the default for when you need to edit messages.
git config --global core.editor "nano -w"
If you're already comfortable with another command-line editor, feel free to select that!
Git commands are written
git action
, where action
is what we actually want it to do. In this case, we're telling Git:- our name and email address,
- what our favorite text editor is, and
- that we want to use these settings globally (i.e., for every project),
The three commands above only need to be run once:
the flag
--global
tells Git to use the settings for every project on this machine.You can check your settings at any time:
git config --list
Git Help and Manual
If you forget a
git
command, you can access the list of commands by using -h
and access the Git manual by using --help
:git config -h git config --help
While viewing the manual, remember the
:
is a prompt waiting for commands and you can press <kbd>Q</kbd> to exit the manual.Setting Up GitHub
In order to make sure all our work is backed up online, as well as making it easy to share with collaborators, we're going to link our version control content to GitHub. You'll need to create an account there. As your GitHub
username will appear in the URLs of your projects there, it's best to use a short, clear version of your name if you can.
Creating an SSH Key
We'll need to set up SSH access to GitHub from your computer. This is how GitHub checks your identity when you try to access it - and is more secure than a password. To set up SSH access, we generate a pair of keys - one public, one private. We want to add the public key to GitHub, whilst the private one stays on our computer.
More Detail
There are full guides in the GitHub documentation for how to
Make an SSH Key and
Add an SSH key.
We're going to simplify them for today.
If you already have your own SSH key, feel free to skip to Add an SSH Key.
We can run a simple command to generate a new SSH key. It'll ask you for some settings, but you should just hit enter to use the defaults for everything:
ssh-keygen -t ed25519
Generating public/private ed25519 key pair. Enter file in which to save the key (/home/smangham/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in id_ed25519 Your public key has been saved in id_ed25519.pub The key fingerprint is: SHA256:tm2lRVXqWdkwiu+fvOF8WxRaf6peAqZHKSaWDO8jjjs user-name@computer-name The key's randomart image is: +--[ED25519 256]--+ | +..| | . o +o| | . . o .+o| | + . + .ooo| | * S = +.o +| | o + B * o.| | . o o = o + .| | Eo . . o O oo| | oo. .o B+.| +----[SHA256]-----+
Add an SSH Key
Now we've generated a key, we can add this to GitHub and register the key there. First, visit GitHub, and make sure you've signed in to your account. Once you're signed in, go to GitHub > Settings > SSH and GPG keys > Add new, and you should see this:
We need to fill in the details. Give the key a title like "Laptop SSH key", and then paste your public key into the key box - we can find it in our
~/.ssh
folder:ls ~/.ssh
id_ed25519 id_ed25519.pub known_hosts
You want to copy the contents of the
.pub
file, which you can display with:cat ~/.ssh/id_ed25519.pub
ssh-ed25519 <SNIPPED FOR SECURITY> user-name@computer-name
Make sure you copy the
.pub
file and not the private key! Your private key lives on your machine and is never shared with anyone else. Then click Add key, and you're done!