Instructor Notes

This is a placeholder file. Please add content here.

Introduction


Instructor Note

Before the start of the course you should setup a new collaborative pad where participants can answer questions and collaborate.

If running the course online you should have a list of participants and have paired them off at random.

When explaining the challenge remember to let participants know that they can use these pages to work through the steps, this is particularly important for those who are not overly familiar with Python.

Once people have completed the task ask for volunteers to describe their experiences BVC.



Instructor Note

If anyone has multiple GitHub accounts it is possible that permission may be denied which force pushing if the wrong SSH key is used. It is simple to work around this by adding the following to the .git/config of the user and ensuring it points to the correct private SSH key that is associated with the account they wish to use.

BASH

[core]
    ...
    sshCommand = ssh -i ~/.ssh/id_ed25519 -F /dev/null

The important part is that it points to the correct SSH key, in the above this is ~/.ssh/id_ed25519 which will need modifying to reflect the users key for the account they wish to use.



Git Hygiene


Instructor Note

Remember to switch to GitHub and go through the process of creating a new repository to show where the option to select a template can be found.



Instructor Note

Show how to toggle the view on GitHub pull requests. Make sure to have an example that is already open in a tab of your browser.

If you have difftastic already configured for Git make sure to disable if you are going to show the difference in the terminal live.



Instructor Note

Be prepared to explain how SSH keys can be unlocked on login so that the passwords don’t need entering every time you try to use the SSH key.



Branching


Instructor Note

Take the time to make sure everyone understands what the graphic represents, explaining that each tag is a commit and that the branch forks at a given point but doesn’t have a commit associated with it.

The history of both the main and the branch contain all points from the origin but



Diverging Branches


Instructor Note

Remember to take the time to show the contents of the files and how they “disappear” when switching branches, in particular after having added README.md to branch1 and switching back to main.

Also use git logp alias (or other form of git log that shows branches) to show the changes and explain the point at which each of the branches is at with reference to the * indicating commits, the branch names and where they sit and the date/time stamps.



Instructor Note

Again remember to take the time to show the contents of the files and how they “disappear” when switching branches, in particular after having added README.md to branch1 and switching back to main.

Also use git logp alias (or other form of git log that shows branches) to show the changes and explain the point at which each of the branches is at with reference to the * which denote commits, the branch names and where they sit and the date/time stamps.

It can be useful at the end to open a second terminal and show the history of the two git-merge-test and git-rebase-test repositories to show how they differ in terms of branches.



Hooks


Instructor Note

Make sure the audience understands what the commit, push and pull events are and they they are actions for git to make on the repository at different stages in the Git workflow.



Instructor Note

Check that attendees are familiar with grep and searching files for strings. If people are unfamiliar explain clearly what each solution is doing in terms of the string being searched for, the target file (.pre-commit-config.yaml) the before (-B) and after (-A) flags and how the pipe (|) command is used to chain expressions together.



Continuous Integration


Instructor Note

Make sure to ask the class who is familiar with YAML so you can gauge the level of experience in the room. If no one has come across it before take things a little slower and explain how the structure works.



Additional Topics


Further Resources