Collaborating and sharing using GitHub without command line#

This tutorial provides a brief but hands-on introduction to Git and GitHub to exercise useful workflows within GitHub. Git is a version control system which allows files and data to be tracked synchronized, which allows collaboration and reproducibility. GitHub is a popular website that stores these repositories.

This tutorial avoids using the command line. Instead, we will practice collaborating and sharing using either the GitHub website or GitHub desktop application. Why? Because for many cases, it is enough. Especially if you are contributing to existing non-code projects, this may be the fastest, easiest way to do it. Git and GitHub provide collaboration tools to all kinds of projects, and there are all kinds of good ways to use it.

This serves as an introduction to Git. After this lesson, you will both be able to use Git, and feel much more confident taking a command-line course Git course such as the Software Carpentry Version Control with Git Lesson or CodeRefinery’s git-intro course.

Why GitHub

We will do this exercise on GitHub but also GitLab and Bitbucket allow similar workflows and basically everything that we will discuss is transferable. With this material and these exercises we do not endorse the company GitHub. We have chosen to demonstrate a number of concepts using examples with GitHub because it is currently the most popular web platform for hosting Git repositories and the chance is high that you will interact with GitHub-based repositories even if you choose to host your Git repository on another platform.

The Smithsonian Institution has an Enterprise license agreement with GitHub, which we will discuss further at the end of this lesson.

The lesson#

20 min

Basics and motivation

40 min

Creating repositories using the web interface

60 min

GitHub Issues and Pull Requests

40 min

Making changes with GitHub Desktop

40 min

Creating a respository with GitHub Desktop

20 min

Hosting websites on GitHub Pages

10 min

Smithsonian Specifics

Preparations#

Not required:

  • Previous knowledge of Git or GitHub

  • Knowledge of the command line

Prerequisites

Please prepare these before the workshop:

Optional reading:

See also#

This workshop from CodeRefinery was a direct inspiration (some portions were lifted verbatim)

The CodeRefinery lesson cites these materials as inspiration: