Skip to content

intro to git and github

Sam Moorhouse edited this page Jun 15, 2018 · 4 revisions

Intro to git and github

Teaching Materials

Teaching Slides | Labs

Introduction

git is a source control and version management system widely used in industry. In this introductory course, we expose the student to the git commandline tooling and some IDE integration, and show the part that git plays as part of a professional work cycle. We expose the student to concepts such as "checkin early and often", and advanced features of git.

The work is mostly lab-based, with a short introductory teaching session.

Our programme is highly git-based, which means that students are exposed to git before we teach this module. We think this 'cargo cult' approach is safe, however, for three reasons:

  • Some students will already know git, and will be able to help out in class
  • It puts git into the mind of the student and offers a stretch goal for advanced students
  • The introduction to git definitely happens - i.e. we're not cargo culting forever

In addition, we introduce github and other similar remote git repositories to the student. These, again, are very widely used on open-source software projects, and have the added benefit of acting as a portfolio for the students work. In fact, we aim for 30 new github accounts as part of the course.

Length

The taught introductory session will last around 45 minutes

The pair-based lab will take around two hours.

Learning aims

After completion of this course, the student should know and understand:

  • The rationale behind the use of a source code version management system
  • git as a system for versioning and managing source code
  • The git commandline tooling and IDE integration
  • the use of github as a remote git repository

In addition, each student will have their own github account, where they'll check in all the code they produce as part of this programme.

Prerequisites

The student should be familiar with the unix shell.

Further work

Students will be encouraged to expand their knowledge of the git tooling in their own time.

Clone this wiki locally