Skip to content

Latest commit

 

History

History
156 lines (134 loc) · 6.29 KB

02-setup.md

File metadata and controls

156 lines (134 loc) · 6.29 KB
title teaching exercises questions objectives keypoints
Setting Up Git
5
0
How do I get set up to use Git?
Configure `git` the first time it is used on a computer.
Understand the meaning of the `--global` configuration flag.
Use `git config` to configure a user name, email address, editor, and other preferences once per machine.

When we use Git on a new computer for the first time, we need to configure a few things. Below are a few examples of configurations we will set as we get started with Git:

  • our name and email address,
  • to colorize our output,
  • what our preferred text editor is,
  • and that we want to use these settings globally (i.e. for every project)

On a command line, Git commands are written as git verb, where verb is what we actually want to do. So here is how Jane sets up her new laptop:

$ git config --global user.name "Jane Smith"
$ git config --global user.email "[email protected]"
$ git config --global color.ui auto
$ git config --global init.defaultBranch main

{: .bash}

We're using a Linux 'virtual machine' today which has the command line tools for Git already installed, but Git can be used equally well on a Mac or a Windows computer:

Git setup for Mac Git and Git Bash setup for Windows

Please use your own name and email address instead of Jane's. Later on in this workshop, we'll be setting up an account on Github so make sure you use the same email address. We recommend that you use your institutional email address.

This user name and email will be associated with your subsequent Git activity, which means that any changes pushed to GitHub, BitBucket, GitLab or another Git host server in a later lesson will include this information.

Line Endings

As with other keys, when you hit the 'return' key on your keyboard, your computer encodes this input. For reasons that are long to explain, different operating systems use different character(s) to represent the end of a line. (You may also hear these referred to as newlines or line breaks.) Because git uses these characters to compare files, it may cause unexpected issues when editing a file on different machines.

You can change the way git recognizes and encodes line endings using the core.autocrlf command to git config. The following settings are recommended:

On OS X and Linux:

$ git config --global core.autocrlf input

{: .bash}

And on Windows:

$ git config --global core.autocrlf true

{: .bash}

You can read more about this issue on this GitHub page. {: .callout}

For these lessons, we will be interacting with GitHub and so the email address used should be the same as the one used when setting up your GitHub account. If you are concerned about privacy, please review GitHub's instructions for keeping your email address private. If you elect to use a private email address with GitHub, then use that same email address for the user.email value, e.g. [email protected] replacing username with your GitHub one. You can change the email address later on by using the git config command again.

Jane also has to set her favorite text editor, following this table:

Editor Configuration command
Atom $ git config --global core.editor "atom --wait"
nano $ git config --global core.editor "nano -w"
BBEdit (Mac, with command line tools) $ git config --global core.editor "edit -w"
Sublime Text (Mac) $ git config --global core.editor "subl -n -w"
Sublime Text (Win, 32-bit install) $ git config --global core.editor "'c:/program files (x86)/sublime text 3/sublime_text.exe' -w"
Sublime Text (Win, 64-bit install) $ git config --global core.editor "'c:/program files/sublime text 3/sublime_text.exe' -w"
Notepad++ (Win, 32-bit install) $ git config --global core.editor "'c:/program files (x86)/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Notepad++ (Win, 64-bit install) $ git config --global core.editor "'c:/program files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Kate (Linux) $ git config --global core.editor "kate"
Gedit (Linux) $ git config --global core.editor "gedit --wait --new-window"
Scratch (Linux) $ git config --global core.editor "scratch-text-editor"
emacs $ git config --global core.editor "emacs"
vim $ git config --global core.editor "vim"

It is possible to reconfigure the text editor for Git whenever you want to change it.

Exiting Vim

Note that vim is the default editor for many programs. If you haven't used vim before and wish to exit a session, type Esc then :q! and Enter. {: .callout}

The four commands we just ran above only need to be run once: the flag --global tells Git to use the settings for every project, in your user account, on this computer.

You can check your settings at any time:

$ git config --list

{: .bash}

You can change your configuration as many times as you want: just use the same commands to choose another editor or update your email address.

Proxy

In some networks you need to use a proxy. If this is the case, you may also need to tell Git about the proxy:

$ git config --global http.proxy proxy-url
$ git config --global https.proxy proxy-url

{: .bash}

To disable the proxy, use

$ git config --global --unset http.proxy
$ git config --global --unset https.proxy

{: .bash} {: .callout}

Git Help and Manual

Always remember that 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

{: .bash} {: .callout}