Open Source Comes to Campus/Curriculum/Git/Instructors

From OpenHatch wiki

Leading 'Practicing Git'

Your goal, over the course of this 40-60 minute activity, is to help students experience what it is like to make changes to a project through GitHub.

The background

We've created a GitHub organization for you to use, and given you administrative access to it. Within that organization is a repository. The repository is named $organization-name.github.io, because this is the name it needs to have for GitHub to automatically generate a GitHub page. You can see an unaltered example of a new organization with a new repository here.

Within the repository, we have created a set of bitesize issues for students to work on. (See here for example.) You will ask students to pick an issue to work on and claim it by leaving a comment. Students can work by themselves or in groups. If they decide to work together, try to have them leave all of their GitHub usernames somewhere on the GitHub issue that they solved as a group. That's for our record-keeping about how the event went.

Sometimes a student will submit a pull request that needs fixing. For example:

  • They might make unrelated changes in the file.
  • They might fail to fix the issue correctly.
  • They might submit two commits that need to be in separate pull requests, since we haven't taught them about branches yet.

When this happens, explain the situation out loud to the whole group and invite all of your students to watch as you address the issue. Typically the issue is something that everyone will benefit from learning about.

The activity itself

You can see the steps of the activity itself in the student guide. (Note: there will be printed copies given to students during the activity.) We encourage you as a mentor to go through the steps ahead of time and make sure you are comfortable with all of them.

The last section of the student guide is the 'advanced' section. The typical Practicing Git group will not get to this section, which is totally okay. We encourage you to be prepared for it, however, as individual students may have questions about it. If you're not comfortable with the steps in the advanced section, we encourage you to ask for help from OpenHatch organizers ahead of time, or from other mentors at the event.

Some notes

  • Asheesh recommends you encourage Windows and Mac users to stay away from "GitHub for Windows" and "GitHub for Mac" because the steps you need to follow with those are different than what we have documented. Others have disagreed on this, but that's what Asheesh thinks. (The laptop setup guide also steers clear of those, so if students are following directions, they will do things the Asheesh way.)
  • Your main repository is configured, via GitHub Pages, to load on the web at a HTTP URL the same as the repository name. So, once you merge students' pull requests, they should be visible on the web at that address.
    • Note that it may take up to 2 minutes for the site to update with new changes. So don't expect it all to happen immediately.
    • There may also be issues with caching. To get around this problem, add "/?" to the end of the url.
  • Although you will be working with students in person, and should engage with them in person, we encourage you to use the IRC channel where possible. If you need to give students a link, leave it in the channel instead of writing it out on a white board, for instance. You can also encourage students to show off the their new page by linking to it in IRC.

Further reading

Some students will finish early. For those people, I recommend: