Instructor Notes

This is a placeholder file. Please add content here.

Automated Version Control


Instructor Note

Original lesson material: https://swcarpentry.github.io/git-novice/ Slides: https://esciencecenter-digital-skills.github.io/digital-skills-slides/modules/git-lesson/git-slides, until https://esciencecenter-digital-skills.github.io/digital-skills-slides/modules/git-lesson/git-slides#/4. Please note that slides will be deployed in the ‘right place’ in due time. Right now nobody knows where that is.

The slides provide visual context to the concepts that are used in the live coding. It would be best to have both the live coding screen and the slides screen side by side. As this is in general not possible, it is best to switch back and forth between command line and slides when necessary (you can use the images in the teaching material as indication when to switch to the slides).

Teach what you think is most useful. See how far you get, usually we get to episode 7 (Remotes in GitHub) in one morning. Ignore the temptation to answer advanced questions. (You can of course do this individually during exercises).



Setting Up Git


Instructor Note

There are no slides for this episode. Explain what a command line is, why it is useful, and why we use it in this workshop. Participants are often new to the command line and don’t get why we not use a git gui. Only focus on the bare essentials for setting up git. We shall use nano editor so that everyone is on the same page.



Creating a Repository


Instructor Note

Introduce here the story of Wolfman and Dracula. we all feel it is a bit silly example, but it suits the purpose. Here we suggest referring to ‘The Holy Realms of Git’ slide: https://esciencecenter-digital-skills.github.io/digital-skills-slides/modules/git-lesson/git-slides#/5 to introduce the idea of repository and .git.



Tracking Changes


Instructor Note

We suggest to use slides. From slide 5 onwards: https://esciencecenter-digital-skills.github.io/digital-skills-slides/modules/git-lesson/git-slides#/5 Please switch back and forth between command line and slides when necessary.



Exploring History


Instructor Note

There are no specific slides for this episode. You could consider keeping the slides open to the episode on the basics of Git, to show the visual representation of the changes in the repository.

Consider doing this episode as a demo and not going into the details. The aim is to demonstrate to participants the possiblity to go back and forth through the git log, which is enough for an introduction to git. In practice you only use this occasionally.

Make use of git switch and git restore instead of the confusing git checkout. This is probably much clearer for participants. We haven’t tried this yet and it is not in the training material, so you have to do some pioneering.



Ignoring Things


Instructor Note

There are no slides associated with this episode. Focus on the main concept of ignoring files with a .gitignore file, instead of fully learning the syntax.



Remotes in GitHub


Instructor Note

There are no slides associated with this episode. Take a dedicated moment right before this episode to check succesful completion of particpants’ SSH setup and help out people who did not succeed yet. You will need 15-30 minutes for this.



Collaborative Version Control - Centralized


Instructor Note

Teaching is done as a pair of instructors. Instructor A acts as the owner of the repository, instructor B as a collaborator (internal or external).

First we show the centralized workflow all in the browser using Github:

  • instructor A creates an issue (for example create ‘sum’ function)
  • instructor B picks up the issue
  • Instructor B creates a new branch (good to do this explicitly)
  • Instructor B does some reviewable changes (a simple ‘sum’ function)
  • Instructor B opens a new pull request.
  • Instructor A reviews and approves the PR.
  • Instructor B merges the pull request.
  • Use Github repo’s insights -> network to visualize what just happened


Collaborative Version Control - Distributed


Instructor Note

Teaching is done as a pair of instructors. Instructor A acts as the owner of the repository, instructor B as a collaborator (internal or external).

Now we show distributed workflow. All in the browser using Github:

  • Instructor A removes instructor B
  • Instructor B now submits an issue
  • Instructor A responds to issue asking instructor B to pick it up
  • Instructor B forks repo, does some changes, and submits PR
  • Instructor A reviews the changes
  • Instructor B implements the changes
  • Instructor A merges the pull request
  • Use Github repo’s insights -> network to visualize what just happened