Introduction to Git and GitHub

This course is based on materials by Software Carpentry


In this lesson we use Git from the Unix Shell. Some previous experience with the shell is expected, but is not mandatory.

We expect that participants will execute this lesson on the NeuroHackademy JupyterHub (

If instead you’d like to execute it locally, you can use your local unix shell (either natively on Mac & Linux or under WSL on Windows).

Alternatively, this course can be followed on Windows using Git Bash. All of the commands shown will work on Windows using Git Bash, with the exception of the vim command. vim is a common text editor on Linux: Windows users should use the notepad command instead, and set notepad as the core editor when configuring Git.

You will need a GitHub account for this session. Please sign up for an account if you do not already have one.


You can check out the slides for this workshop here.

Note that there are lots of other great resources out there ! Here are a few of our favorites:


Setup Download files required for the lesson
14:15 1. Tracking changes with a local repository How do I get started with Git?
14:50 2. Looking at history and differences How does Git store information?
15:10 3. Branching What is a branch?
How can I merge changes from another branch?
15:30 4. Getting started with GitHub What is a remote repository?
How can I use GitHub to work from multiple locations?
15:55 5. Collaborating with a remote repository How do I update my local repository with changes from the remote?
How can I collaborate using Git?
16:20 6. Pull Requests How can I contribute to a repository to which I don’t have write access?
16:35 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.