Skip to content

Latest commit

 

History

History
64 lines (51 loc) · 3.27 KB

index.md

File metadata and controls

64 lines (51 loc) · 3.27 KB
layout permalink
lesson
/

Introduction to version control with Git

This is the introductory lesson to version control using Git. It is assumed to be the very first thing done in a course.

Our philosophy is that we start from own local repository, branching and merging (locally), and a brief introduction to pushing to remotes. In the separate collaborative git lesson, we teach more use of remote repositories and good collaborative workflows. We try to stick to simple workflows, just enough for researchers who aren't obsessed with git to be able to work well. We try to avoid commands which might get you into a bad state.

Our general flow is 30 minutes on "why version control" and exploring an online repository to see the full reason we go through this effort. Then, there's about an hour of the basics of how to make commits. Then, there are several small steps until we get to branching, merging, and conflict resolution. Then, we just see a little bit about mirroring to an online repository and a few other random points before we conclude.

The goals of the module as a whole are that the user will feel comfortable about staging changes, committing them, merging, and branching. The guacamole example that we use is inspired by Byron Smith, for original reference, see this thread. If you are teaching this lesson, see the instructor's guide

Prerequisites

  • A reasonably recent version of Git is installed. For installation instructions and binaries see the Git home page.
  • Being comfortable with the command line. No expertise is required, but the lesson will be mostly taken from the command line.
  • Students should be familiar with using a text editor on their system. Emacs and Vim are excellent choices if you know how to use them but Nano or Notepad on Windows are sufficient.
  • Git should be configured prior to the lesson following our installation instructions.
  • A GitHub user account (but alternatives exist, see below).

If you are interested in the Git-aware prompt you can find it on GitHub.

Why GitHub?

In this introduction we will mention and use 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.

Course participants are most welcome to use our new Nordic research software repository platform instead, for more information see https://coderefinery.org/repository/.